package sounds;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

import util.AudioClipBalanced;
/** <p>An object implementing {@link java.applet.AudioClip java.applet.AudioClip} with the data from drum-02.wav hard-coded into it.</p>
 * <p>Created with the <a href="http://stephengware.com/projects/soundtoclass">SoundToClass tool</a>, by Stephen G. Ware.</p>
 * @author Stephen G. Ware */
public class Drum02 implements AudioClipBalanced {
	private byte[] data;
	private AudioFormat format;
	private DataLine.Info lineInfo = null;
	private PlayThread playThread = null;
	private LoopThread loopThread = null;
	private static final long serialVersionUID = 22040;
	private static byte[] data0(){ return new byte[] {2,0,-86,3,-122,7,89,11,41,15,-17,18,-78,22,100,26,19,30,-83,33,67,37,-62,40,50,44,-103,47,-29,50,33,54,70,57,92,60,79,63,61,66,2,69,-69,71,76,74,-41,76,49,79,125,81,-88,83,-72,85,-89,87,123,89,16,91,-97,92,30,94,121,95,-79,96,-50,97,-50,98,-87,99,105,100,8,101,-114,101,-18,101,51,102,98,102,101,102,84,102,43,102,-36,101,118,101,-8,100,93,100,-86,99,-36,98,-2,97,-2,96,-15,95,-51,94,-111,93,67,92,-40,90,104,89,-25,87,89,86,-68,84,17,83,91,81,-105,79,-49,77,-12,75,30,74,53,72,77,70,95,68,106,66,120,64,-128,62,-122,60,-108,58,-105,56,-87,54,-77,52,-53,50,-35,48,0,47,31,45,79,43,123,41,-68,39,0,38,90,36,-75,34,32,33,-121,31,12,30,-111,28,41,27,-56,25,126,24,57,23,2,22,-30,20,-56,19,-68,18,-60,17,-42,16,-8,15,37,15,103,14,-81,13,8,13,112,12,-29,11,99,11,-18,10,-115,10,42,10,-34,9,-104,9,-128,9,80,9,40,9,6,9,-17,8,-36,8,-41,8,-53,8,-45,8,-46,8,-31,8,-23,8,-8,8,11,9,25,9,45,9,62,9,77,9,91,9,104,9,111,9,116,9,117,9,108,9,102,9,80,9,56,9,28,9,-20,8,-17,8,-81,8,111,8,30,8,-59,7,101,7,-16,6,122,6,-13,5,97,5,-66,4,24,4,94,3,-105,2,-54,1,-23,0,-2,-1,8,-1,4,-2,-14,-4,-44,-5,-81,-6,118,-7,53,-8,-21,-10,-109,-11,48,-12,-58,-14,79,-15,-47,-17,107,-18,-33,-20,66,-21,-92,-23,-1,-25,82,-26,-94,-28,-23,-30,55,-31,112,-33,-68,-35,-13,-37,54,-38,114,-40,-77,-42,-15,-44,56,-45,119,-47,-58,-49,20,-50,98,-52,-61,-54,30,-55,-120,-57,-5,-59,114,-60,-9,-62,-120,-63,29,-64,-41,-66,-123,-67,70,-68,20,-69,-15,-71,-38,-72,-39,-73,-28,-74,0,-74,47,-75,112,-76,-63,-77,37,-77,-95,-78,39,-78,-56,-79,120,-79,65,-79,25,-79,5,-79,14,-79,31,-79,76,-79,-114,-79,-33,-79,71,-78,-58,-78,83,-77,-8,-77,-84,-76,113,-75,64,-74,59,-73,51,-72,76,-71,107,-70,-96,-69,-26,-68,56,-66,-100,-65,17,-63,-117,-62,30,-60,-76,-59,92,-57,13,-55,-57,-54,-112,-52,92,-50,53,-48,18,-46,-5,-45,-31,-43,-36,-41,-59,-39,-52,-37,-68,-35,-60,-33,-67,-31,-96,-29,-100,-27,-96,-25,-103,-23,-108,-21,-113,-19,-128,-17,115,-15,90,-13,64,-11,31,-9,-14,-8,-56,-6,-118,-4,72,-2,0,0,-87,1,72,3,-31,4,109,6,-27,7,97,9,-60,10,31,12,111,13,-83,14,-25,15,4,17,41,18,1,19,6,20,-15,20,-36,21,-85,22,119,23,51,24,-33,24,-128,25,24,26,-99,26,24,27,-119,27,-19,27,70,28,-111,28,-39,28,12,29,63,29,99,29,-126,29,-110,29,-93,29,-89,29,-93,29,-98,29,-114,29,124,29,102,29,70,29,11,29,-28,28,-59,28,-102,28,119,28,77,28,38,28,-1,27,-41,27,-78,27,-112,27,113,27,79,27,59,27,31,27,18,27,3,27,-3,26,-6,26,-3,26,8,27,27,27,46,27,81,27,118,27,-92,27,-40,27,25,28,92,28,-100,28,-10,28,83,29,-72,29,42,30,-95,30,31,31,-89,31,55,32,-51,32,105,33,17,34,-69,34,109,35,37,36,-24,36,-92,37,118,38,61,39,20,40,-28,40,-61,41,-100,42,121,43,92,44,57,45,30,46,-3,46,-33,47,-64,48,-89,49,-120,50,93,51,54,52,3,53,-43,53,-109,54,90,55,15,56,-62,56,110,57,6,58,-88,58,42,59,-74,59,37,60,-106,60,-15,60,70,61,-119,61,-61,61,-27,61,7,62,12,62,9,62,-11,61,-50,61,-101,61,80,61,30,61,-78,60,54,60,-82,59,12,59,94,58,-103,57,-53,56,-37,55,-19,54,-37,53,-61,52,-111,51,84,50,5,49,-102,47,49,46,-92,44,21,43,110,41,-69,39,-9,37,37,36,70,34,89,32,88,30,88,28,62,26,34,24,29,22,-21,19,-84,17,100,15,26,13,-65,10,102,8,0,6,-99,3,44,1,-65,-2,77,-4,-40,-7,99,-9,-18,-12,121,-14,2,-16,-106,-19,34,-21,-70,-24,85,-26,-17,-29,-103,-31,66,-33,-9,-36,-77,-38,121,-40,70,-42,34,-44,6,-46,23,-48,18,-50,33,-52,53,-54,93,-56,-109,-58,-39,-60,43,-61,-108,-63,11,-64,-112,-66,43,-67,-40,-69,-107,-70,101,-71,76,-72,65,-73,73,-74,109,-75,-100,-76,-33,-77,63,-77,-88,-78,45,-78,-64,-79,109,-79,41,-79,-7,-80,-31,-80,-29,-80,-19,-80,11,-79,61,-79,126,-79,-45,-79,59,-78,-78,-78,57,-77,-41,-77,126,-76,55,-75}; }
	private static byte[] data1(){ return new byte[] {0,-74,-37,-74,-70,-73,-75,-72,-81,-71,-62,-70,-42,-69,-1,-68,44,-66,103,-65,-86,-64,-10,-63,75,-61,-87,-60,11,-58,120,-57,-27,-56,94,-54,-53,-53,73,-51,-54,-50,79,-48,-43,-47,92,-45,-25,-44,112,-42,-5,-41,-126,-39,12,-37,-111,-36,24,-34,-106,-33,28,-31,-114,-30,13,-28,124,-27,-18,-26,84,-24,-71,-23,26,-21,108,-20,-59,-19,13,-17,80,-16,-112,-15,-59,-14,-10,-13,-5,-12,31,-10,50,-9,70,-8,72,-7,80,-6,64,-5,54,-4,27,-3,-2,-3,-47,-2,-85,-1,108,0,52,1,-21,1,-95,2,76,3,-13,3,-109,4,45,5,-65,5,77,6,-41,6,84,7,-39,7,78,8,-61,8,54,9,-96,9,-26,9,78,10,-80,10,17,11,113,11,-54,11,43,12,-126,12,-37,12,54,13,-118,13,-24,13,59,14,-103,14,-16,14,76,15,-87,15,6,16,102,16,-55,16,43,17,-109,17,-4,17,101,18,-39,18,68,19,-65,19,50,20,-78,20,43,21,-104,21,22,22,-90,22,46,23,-60,23,80,24,-16,24,-126,25,39,26,-62,26,105,27,14,28,-72,28,98,29,18,30,-65,30,114,31,40,32,-42,32,-108,33,68,34,0,35,-75,35,109,36,38,37,-39,37,-109,38,69,39,-8,39,-97,40,77,41,-6,41,-91,42,73,43,-18,43,-117,44,37,45,-69,45,75,46,-44,46,92,47,-39,47,80,48,-58,48,42,49,-109,49,-22,49,64,50,-118,50,-51,50,6,51,56,51,94,51,125,51,-112,51,-99,51,-101,51,-109,51,125,51,109,51,64,51,20,51,-48,50,-116,50,55,50,-38,49,114,49,-2,48,-127,48,-8,47,100,47,-53,46,30,46,110,45,-77,44,-21,43,29,43,67,42,96,41,118,40,-128,39,-124,38,127,37,112,36,94,35,64,34,28,33,-11,31,-36,30,-85,29,106,28,46,27,-27,25,-101,24,79,23,-7,21,-89,20,76,19,-13,17,-108,16,56,15,-44,13,121,12,17,11,-73,9,78,8,-9,6,-113,5,58,4,-40,2,-124,1,41,0,-37,-2,-121,-3,61,-4,-11,-6,-79,-7,-107,-8,90,-9,40,-10,-8,-12,-50,-13,-80,-14,-114,-15,126,-16,106,-17,102,-18,100,-19,105,-20,124,-21,-116,-22,-83,-23,-45,-24,-2,-25,53,-25,114,-26,-71,-27,2,-27,95,-28,-76,-29,35,-29,-120,-30,6,-30,126,-31,5,-31,-108,-32,38,-32,-33,-33,-126,-33,44,-33,-36,-34,-105,-34,84,-34,27,-34,-26,-35,-72,-35,-112,-35,109,-35,81,-35,55,-35,40,-35,21,-35,15,-35,8,-35,5,-35,10,-35,15,-35,21,-35,39,-35,44,-35,72,-35,82,-35,110,-35,-128,-35,-100,-35,-77,-35,-39,-35,-10,-35,11,-34,48,-34,68,-34,101,-34,127,-34,-101,-34,-73,-34,-48,-34,-22,-34,4,-33,26,-33,49,-33,72,-33,90,-33,109,-33,-128,-33,-115,-33,-99,-33,-85,-33,-77,-33,-64,-33,-61,-33,-47,-33,-51,-33,-38,-33,-43,-33,-36,-33,-42,-33,-48,-33,-54,-33,-56,-33,-62,-33,-64,-33,-72,-33,-77,-33,-79,-33,-91,-33,-89,-33,-97,-33,-103,-33,-99,-33,-110,-33,-102,-33,-107,-33,-102,-33,-95,-33,-91,-33,-81,-33,-67,-33,-55,-33,-32,-33,-13,-33,11,-32,45,-32,72,-32,118,-32,-103,-32,-77,-32,-27,-32,30,-31,95,-31,-97,-31,-19,-31,57,-30,-109,-30,-20,-30,83,-29,-73,-29,45,-28,-98,-28,34,-27,-94,-27,49,-26,-58,-26,93,-25,2,-24,-86,-24,93,-23,19,-22,-43,-22,-101,-21,106,-20,62,-19,31,-18,-2,-18,-18,-17,-65,-16,-72,-15,-73,-14,-65,-13,-52,-12,-37,-11,-4,-10,18,-8,61,-7,99,-6,-108,-5,-55,-4,-1,-3,63,-1,127,0,-62,1,16,3,86,4,-89,5,-7,6,74,8,-94,9,-10,10,80,12,-89,13,2,15,89,16,-75,17,9,19,99,20,-95,21,-15,22,73,24,-110,25,-28,26,44,28,111,29,-76,30,-18,31,42,33,89,34,-117,35,-81,36,-45,37,-17,38,-1,39,19,41,18,42,21,43,8,44,-9,44,-36,45,-72,46,-117,47,87,48,20,49,-51,49,121,50,27,51,-83,51,55,52,-64,52,54,53,-90,53,13,54,96,54,-77,54,-14,54,45,55,88,55,121,55,-111,55,-101,55,-102,55,-108,55,119,55,93,55,46,55,-8,54,-71,54,107,54,26,54,-75,53,81,53,-39,52,95,52,-41,51,73,51,-81,50,23,50,110,49,-67,48,2,48,64,47,121,46,-90,45,-47,44,-15,43,14,43,32,42,54,41,56,40,67,39,62,38,60,37,50,36,37,35,18,34,-1,32,-26,31,-51,30,-81,29,-113,28,111,27,74,26,40,25,-1,23,-35,22,-54,21,-90,20,126,19,86,18,51,17,11,16,-26,14,-58,13,-96,12,-125,11,98,10,71,9,44,8,19,7,2,6,-24,4,-32,3,-51,2,-55,1,-67,0,-64,-1,-68,-2,-61,-3,-53,-4}; }
	private static byte[] data2(){ return new byte[] {-43,-5,-24,-6,-9,-7,21,-7,45,-8,107,-9,-112,-10,-72,-11,-28,-12,24,-12,73,-13,-122,-14,-63,-15,7,-15,74,-16,-106,-17,-28,-18,56,-18,-114,-19,-22,-20,74,-20,-84,-21,19,-21,-127,-22,-22,-23,100,-23,-42,-24,82,-24,-47,-25,79,-25,-40,-26,94,-26,-23,-27,124,-27,9,-27,-70,-28,80,-28,-21,-29,-117,-29,40,-29,-47,-30,115,-30,33,-30,-56,-31,122,-31,42,-31,-33,-32,-109,-32,79,-32,4,-32,-54,-33,-127,-33,75,-33,9,-33,-44,-34,-102,-34,104,-34,52,-34,3,-34,-42,-35,-86,-35,-128,-35,89,-35,52,-35,26,-35,-7,-36,-37,-36,-67,-36,-90,-36,-116,-36,120,-36,104,-36,83,-36,77,-36,59,-36,57,-36,49,-36,48,-36,48,-36,53,-36,56,-36,71,-36,78,-36,99,-36,114,-36,-117,-36,-93,-36,-63,-36,-31,-36,6,-35,43,-35,92,-35,-126,-35,-66,-35,-30,-35,35,-34,93,-34,-98,-34,-28,-34,44,-33,121,-33,-53,-33,31,-32,121,-32,-43,-32,55,-31,-102,-31,6,-30,114,-30,-28,-30,89,-29,-48,-29,82,-28,-48,-28,86,-27,-31,-27,105,-26,1,-25,-113,-25,44,-24,-58,-24,100,-23,10,-22,-105,-22,67,-21,-17,-21,-98,-20,82,-19,6,-18,-62,-18,122,-17,59,-16,-5,-16,-67,-15,-126,-14,78,-13,17,-12,-29,-12,-85,-11,126,-10,75,-9,32,-8,-16,-8,-58,-7,-102,-6,113,-5,69,-4,30,-3,-13,-3,-51,-2,-95,-1,123,0,52,1,12,2,-31,2,-73,3,-119,4,93,5,48,6,-4,6,-46,7,-106,8,107,9,45,10,-7,10,-67,11,126,12,66,13,-3,13,-69,14,113,15,41,16,-39,16,-116,17,52,18,-32,18,-123,19,38,20,-57,20,96,21,-10,21,-115,22,3,23,-108,23,23,24,-97,24,27,25,-100,25,16,26,-123,26,-11,26,94,27,-56,27,41,28,-120,28,-29,28,56,29,-118,29,-39,29,32,30,104,30,-90,30,-26,30,29,31,82,31,-127,31,-78,31,-45,31,1,32,25,32,59,32,74,32,96,32,113,32,-126,32,-119,32,-109,32,-107,32,-106,32,-109,32,-117,32,-124,32,115,32,103,32,81,32,60,32,35,32,5,32,-23,31,-60,31,-92,31,120,31,83,31,33,31,-7,30,-61,30,-111,30,94,30,31,30,-19,29,-87,29,122,29,50,29,-9,28,-82,28,105,28,35,28,-44,27,-115,27,61,27,-18,26,-99,26,70,26,-8,25,-102,25,74,25,-25,24,-109,24,48,24,-42,23,113,23,20,23,-86,22,74,22,-30,21,118,21,18,21,-95,20,54,20,-56,19,106,19,-4,18,-124,18,21,18,-104,17,40,17,-90,16,51,16,-81,15,54,15,-74,14,48,14,-76,13,41,13,-90,12,32,12,-110,11,13,11,125,10,-17,9,100,9,-53,8,67,8,-90,7,23,7,125,6,-26,5,77,5,-78,4,45,4,-109,3,-14,2,83,2,-78,1,15,1,107,0,-54,-1,32,-1,125,-2,-44,-3,45,-3,-125,-4,-37,-5,45,-5,-121,-6,-39,-7,45,-7,-126,-8,-44,-9,40,-9,125,-10,-51,-11,34,-11,118,-12,-57,-13,31,-13,110,-14,-56,-15,24,-15,-120,-16,-40,-17,53,-17,-118,-18,-27,-19,63,-19,-99,-20,-9,-21,91,-21,-74,-22,29,-22,-128,-23,-27,-24,79,-24,-71,-25,37,-25,-105,-26,5,-26,125,-27,-13,-28,107,-28,-20,-29,105,-29,-20,-30,120,-30,-8,-31,-113,-31,26,-31,-79,-32,82,-32,-22,-33,-117,-33,49,-33,-43,-34,-123,-34,50,-34,-25,-35,-94,-35,92,-35,34,-35,-26,-36,-78,-36,-126,-36,87,-36,49,-36,16,-36,-13,-37,-38,-37,-53,-37,-69,-37,-76,-37,-79,-37,-79,-37,-69,-37,-59,-37,-39,-37,-19,-37,11,-36,43,-36,76,-36,115,-36,-89,-36,-38,-36,23,-35,85,-35,-101,-35,-30,-35,55,-34,-123,-34,-31,-34,63,-33,-97,-33,11,-32,114,-32,-24,-32,88,-31,-38,-31,81,-30,-39,-30,95,-29,-23,-29,124,-28,14,-27,-89,-27,67,-26,-30,-26,-122,-25,46,-24,-61,-24,117,-23,33,-22,-38,-22,-113,-21,73,-20,9,-19,-60,-19,-114,-18,75,-17,26,-16,-33,-16,-83,-15,123,-14,74,-13,29,-12,-17,-12,-60,-11,-100,-10,111,-9,77,-8,32,-7,1,-6,-41,-6,-76,-5,-113,-4,107,-3,73,-2,36,-1,-23,-1,-60,0,-96,1,122,2,86,3,46,4,6,5,-32,5,-79,6,-116,7,89,8,49,9,-4,9,-50,10,-106,11,101,12,41,13,-15,13,-78,14,117,15,48,16,-17,16,-93,17,91,18,12,19,-69,19,103,20,15,21,-77,21,86,22,-33,22,122,23,16,24,-93,24,47,25,-66,25,62,26,-59,26,63,27,-69,27,45,28,-95,28,9,29,117,29,-45,29,54,30,-118,30,-29,30,50,31,124,31,-58,31,3,32,68,32,120,32,-79,32,-39,32,9,33,40,33,76,33,93,33,118,33,-121,33,-108,33,-100,33,-96,33,-98,33}; }
	private static byte[] data3(){ return new byte[] {-102,33,-115,33,-128,33,107,33,83,33,54,33,22,33,-17,32,-57,32,-105,32,101,32,47,32,-11,31,-75,31,117,31,42,31,-27,30,-109,30,68,30,-19,29,-105,29,56,29,-36,28,124,28,28,28,-80,27,72,27,-40,26,101,26,-8,25,123,25,7,25,-117,24,11,24,-111,23,10,23,-117,22,1,22,-128,21,-17,20,109,20,-38,19,81,19,-64,18,48,18,-96,17,13,17,123,16,-29,15,85,15,-72,14,41,14,-98,13,11,13,115,12,-37,11,68,11,-85,10,22,10,122,9,-25,8,75,8,-72,7,30,7,-120,6,-13,5,92,5,-55,4,48,4,-94,3,9,3,124,2,-24,1,85,1,-52,0,52,0,-81,-1,27,-1,-108,-2,8,-2,125,-3,12,-3,-123,-4,-5,-5,126,-5,-15,-6,119,-6,-16,-7,117,-7,-14,-8,121,-8,-4,-9,-128,-9,11,-9,-113,-10,29,-10,-91,-11,54,-11,-65,-12,84,-12,-30,-13,116,-13,13,-13,-100,-14,57,-14,-52,-15,108,-15,2,-15,-91,-16,60,-16,-28,-17,-112,-17,58,-17,-41,-18,-125,-18,38,-18,-46,-19,125,-19,38,-19,-40,-20,-124,-20,55,-20,-23,-21,-98,-21,82,-21,13,-21,-61,-22,-128,-22,61,-22,-6,-23,-69,-23,125,-23,65,-23,8,-23,-50,-24,-105,-24,100,-24,48,-24,0,-24,-46,-25,-86,-25,-128,-25,88,-25,46,-25,14,-25,-25,-26,-55,-26,-84,-26,-115,-26,120,-26,91,-26,77,-26,53,-26,43,-26,23,-26,18,-26,7,-26,2,-26,1,-26,-4,-27,4,-26,5,-26,16,-26,24,-26,41,-26,53,-26,78,-26,93,-26,126,-26,-109,-26,-78,-26,-51,-26,-10,-26,30,-25,69,-25,119,-25,-92,-25,-37,-25,16,-24,75,-24,-122,-24,-55,-24,10,-23,83,-23,-104,-23,-23,-23,50,-22,-116,-22,-37,-22,55,-21,-113,-21,-16,-21,77,-20,-73,-20,20,-19,-121,-19,-22,-19,97,-18,-55,-18,52,-17,-93,-17,34,-16,-106,-16,24,-15,-109,-15,24,-14,-104,-14,32,-13,-91,-13,48,-12,-71,-12,72,-11,-45,-11,101,-10,-9,-10,-124,-9,32,-8,-83,-8,72,-7,-35,-7,116,-6,14,-5,-88,-5,62,-4,-36,-4,115,-3,18,-2,-86,-2,50,-1,-52,-1,104,0,2,1,-99,1,52,2,-46,2,103,3,1,4,-106,4,47,5,-65,5,91,6,-27,6,126,7,9,8,-102,8,38,9,-78,9,60,10,-60,10,72,11,-48,11,76,12,-44,12,75,13,-53,13,65,14,-69,14,44,15,-108,15,-2,15,112,16,-40,16,66,17,-90,17,11,18,105,18,-54,18,32,19,124,19,-49,19,35,20,111,20,-62,20,4,21,82,21,-110,21,-45,21,20,22,78,22,-123,22,-66,22,-18,22,32,23,76,23,120,23,-99,23,-59,23,-35,23,3,24,27,24,56,24,78,24,101,24,118,24,-119,24,-109,24,-96,24,-88,24,-82,24,-78,24,-76,24,-78,24,-81,24,-88,24,-93,24,-107,24,-114,24,122,24,109,24,89,24,68,24,45,24,22,24,-8,23,-35,23,-66,23,-99,23,-127,23,91,23,54,23,14,23,-28,22,-71,22,-119,22,92,22,41,22,-9,21,-62,21,-116,21,82,21,25,21,-36,20,-96,20,95,20,30,20,-37,19,-107,19,81,19,5,19,-67,18,113,18,34,18,-45,17,-128,17,47,17,-41,16,-108,16,53,16,-33,15,-127,15,36,15,-62,14,97,14,-3,13,-104,13,46,13,-56,12,87,12,-15,11,123,11,15,11,-103,10,36,10,-80,9,52,9,-67,8,62,8,-60,7,63,7,-61,6,60,6,-71,5,51,5,-86,4,32,4,-86,3,26,3,-113,2,-3,1,111,1,-37,0,72,0,-75,-1,28,-1,-117,-2,-18,-3,90,-3,-66,-4,38,-4,-118,-5,-14,-6,82,-6,-69,-7,27,-7,-125,-8,-30,-9,75,-9,-86,-10,17,-10,119,-11,-41,-12,68,-12,-92,-13,15,-13,118,-14,-20,-15,92,-15,-64,-16,53,-16,-99,-17,16,-17,-125,-18,-10,-19,107,-19,-26,-20,94,-20,-35,-21,91,-21,-32,-22,95,-22,-15,-23,113,-23,9,-23,-110,-24,47,-24,-64,-25,98,-25,-2,-26,-93,-26,73,-26,-9,-27,-92,-27,89,-27,17,-27,-46,-28,-109,-28,88,-28,33,-28,-17,-29,-62,-29,-103,-29,119,-29,85,-29,64,-29,35,-29,28,-29,8,-29,10,-29,1,-29,11,-29,15,-29,32,-29,48,-29,74,-29,101,-29,-120,-29,-84,-29,-38,-29,8,-28,62,-28,120,-28,-75,-28,-8,-28,65,-27,-124,-27,-40,-27,41,-26,-126,-26,-33,-26,62,-25,-92,-25,13,-24,118,-24,-24,-24,90,-23,-48,-23,76,-22,-58,-22,70,-21,-52,-21,75,-20,-37,-20,95,-19,-18,-19,127,-18,11,-17,-93,-17,52,-16,-51,-16,98,-15,-3,-15,-105,-14,48,-13,-62,-13,91,-12,-7,-12,-103,-11,51,-10,-42,-10,112,-9,17,-8,-82,-8,75,-7,-22,-7,-124,-6,35,-5,-69,-5,87,-4,-18,-4,-119,-3,27,-2,-74,-2}; }
	private static byte[] data4(){ return new byte[] {67,-1,-38,-1,103,0,-7,0,-127,1,17,2,-106,2,29,3,-91,3,33,4,-105,4,14,5,-113,5,4,6,125,6,-17,6,99,7,-48,7,61,8,-89,8,15,9,114,9,-41,9,51,10,-109,10,-21,10,69,11,-104,11,-19,11,59,12,-119,12,-44,12,30,13,100,13,-90,13,-22,13,38,14,104,14,-98,14,-39,14,1,15,53,15,106,15,-104,15,-56,15,-12,15,33,16,71,16,113,16,-105,16,-72,16,-31,16,-6,16,34,17,58,17,91,17,116,17,-112,17,-86,17,-65,17,-38,17,-20,17,5,18,19,18,45,18,55,18,79,18,92,18,105,18,119,18,-128,18,-112,18,-100,18,-90,18,-78,18,-69,18,-59,18,-50,18,-45,18,-37,18,-31,18,-25,18,-22,18,-17,18,-16,18,-14,18,-12,18,-14,18,-13,18,-17,18,-19,18,-24,18,-28,18,-35,18,-44,18,-51,18,-63,18,-73,18,-85,18,-98,18,-107,18,125,18,112,18,89,18,68,18,44,18,21,18,-10,17,-35,17,-68,17,-102,17,123,17,81,17,48,17,1,17,-37,16,-87,16,124,16,74,16,20,16,-33,15,-91,15,106,15,43,15,-18,14,-89,14,101,14,28,14,-33,13,-109,13,68,13,-13,12,-97,12,73,12,-17,11,-106,11,55,11,-41,10,119,10,16,10,-85,9,65,9,-41,8,103,8,-3,7,-121,7,23,7,-96,6,41,6,-78,5,56,5,-69,4,62,4,-64,3,64,3,-65,2,61,2,-56,1,72,1,-65,0,59,0,-76,-1,46,-1,-89,-2,32,-2,-106,-3,17,-3,-121,-4,2,-4,121,-5,-12,-6,108,-6,-24,-7,97,-7,-32,-8,90,-8,-36,-9,86,-9,-35,-10,90,-10,-32,-11,102,-11,-20,-12,116,-12,3,-12,-118,-13,31,-13,-70,-14,78,-14,-27,-15,124,-15,25,-15,-75,-16,87,-16,-5,-17,-97,-17,74,-17,-9,-18,-93,-18,91,-18,10,-18,-55,-19,-127,-19,68,-19,2,-19,-51,-20,-109,-20,98,-20,49,-20,5,-20,-36,-21,-72,-21,-109,-21,120,-21,89,-21,68,-21,52,-21,32,-21,22,-21,6,-21,3,-21,-4,-22,-5,-22,-2,-22,0,-21,12,-21,19,-21,36,-21,50,-21,72,-21,91,-21,120,-21,-112,-21,-81,-21,-47,-21,-16,-21,26,-20,61,-20,106,-20,-108,-20,-63,-20,-15,-20,36,-19,84,-19,-114,-19,-66,-19,-9,-19,44,-18,105,-18,-92,-18,-30,-18,32,-17,95,-17,-96,-17,-30,-17,35,-16,104,-16,-85,-16,-16,-16,53,-15,124,-15,-63,-15,9,-14,82,-14,-105,-14,-30,-14,41,-13,114,-13,-67,-13,3,-12,81,-12,-105,-12,-29,-12,44,-11,119,-11,-77,-11,1,-10,71,-10,-110,-10,-32,-10,36,-9,118,-9,-71,-9,9,-8,80,-8,-98,-8,-27,-8,52,-7,123,-7,-56,-7,19,-6,94,-6,-85,-6,-10,-6,65,-5,-115,-5,-36,-5,36,-4,121,-4,-67,-4,20,-3,91,-3,-83,-3,-4,-3,59,-2,-115,-2,-35,-2,45,-1,-127,-1,-48,-1,38,0,118,0,-50,0,31,1,119,1,-53,1,36,2,120,2,-44,2,39,3,-121,3,-36,3,57,4,-110,4,-15,4,73,5,-84,5,2,6,104,6,-65,6,36,7,-128,7,-30,7,63,8,-104,8,-14,8,92,9,-75,9,29,10,119,10,-31,10,56,11,-92,11,-6,11,98,12,-67,12,33,13,122,13,-33,13,53,14,-105,14,-15,14,75,15,-91,15,-2,15,82,16,-85,16,-1,16,77,17,-91,17,-20,17,64,18,-122,18,-50,18,18,19,90,19,-102,19,-38,19,26,20,81,20,-116,20,-67,20,-11,20,29,21,81,21,115,21,-100,21,-66,21,-36,21,-8,21,16,22,36,22,52,22,67,22,72,22,82,22,81,22,78,22,74,22,61,22,48,22,32,22,6,22,-14,21,-41,21,-82,21,-110,21,94,21,56,21,2,21,-51,20,-107,20,85,20,22,20,-49,19,-120,19,58,19,-22,18,-104,18,62,18,-25,17,-122,17,39,17,-63,16,92,16,-16,15,-124,15,19,15,-95,14,43,14,-75,13,59,13,-56,12,78,12,-56,11,77,11,-61,10,68,10,-73,9,53,9,-90,8,31,8,-108,7,6,7,123,6,-19,5,94,5,-46,4,67,4,-76,3,40,3,-104,2,13,2,125,1,-12,0,101,0,-34,-1,82,-1,-54,-2,68,-2,-69,-3,72,-3,-60,-4,64,-4,-58,-5,66,-5,-53,-6,80,-6,-42,-7,102,-7,-19,-8,-128,-8,16,-8,-91,-9,60,-9,-44,-10,114,-10,12,-10,-75,-11,81,-11,0,-11,-95,-12,86,-12,-1,-13,-74,-13,105,-13,34,-13,-36,-14,-100,-14,91,-14,32,-14,-14,-15,-70,-15,-120,-15,87,-15,40,-15,-3,-16,-44,-16,-80,-16,-117,-16,109,-16,74,-16,53,-16,22,-16,4,-16,-18,-17,-37,-17,-50,-17,-67,-17,-74,-17,-87,-17,-92,-17,-98,-17,-101,-17,-104,-17,-100,-17,-103,-17,-96,-17,-91,-17,-86,-17,-72,-17,-63,-17}; }
	private static byte[] data5(){ return new byte[] {-56,-17,-38,-17,-30,-17,-14,-17,1,-16,17,-16,34,-16,54,-16,69,-16,93,-16,111,-16,-122,-16,-101,-16,-78,-16,-56,-16,-29,-16,-9,-16,21,-15,41,-15,73,-15,93,-15,125,-15,-107,-15,-79,-15,-49,-15,-21,-15,4,-14,39,-14,59,-14,92,-14,121,-14,-107,-14,-71,-14,-46,-14,-7,-14,17,-13,56,-13,84,-13,122,-13,-103,-13,-67,-13,-32,-13,4,-12,39,-12,79,-12,113,-12,-101,-12,-64,-12,-22,-12,17,-11,61,-11,102,-11,-110,-11,-64,-11,-22,-11,30,-10,73,-10,115,-10,-94,-10,-41,-10,8,-9,66,-9,116,-9,-79,-9,-26,-9,35,-8,93,-8,-99,-8,-40,-8,30,-7,89,-7,-96,-7,-28,-7,37,-6,117,-6,-75,-6,6,-5,76,-5,-101,-5,-22,-5,55,-4,-116,-4,-38,-4,49,-3,-124,-3,-39,-3,38,-2,124,-2,-40,-2,49,-1,-115,-1,-24,-1,74,0,-93,0,8,1,99,1,-57,1,39,2,-118,2,-21,2,79,3,-78,3,21,4,122,4,-37,4,66,5,-92,5,7,6,109,6,-52,6,51,7,-110,7,-11,7,85,8,-74,8,20,9,105,9,-57,9,33,10,-128,10,-44,10,50,11,-123,11,-35,11,46,12,-125,12,-48,12,33,13,107,13,-74,13,-2,13,68,14,-121,14,-56,14,9,15,65,15,-128,15,-77,15,-23,15,29,16,72,16,121,16,-97,16,-57,16,-19,16,7,17,39,17,66,17,90,17,112,17,-125,17,-112,17,-96,17,-90,17,-81,17,-80,17,-77,17,-82,17,-85,17,-96,17,-105,17,-121,17,119,17,98,17,77,17,51,17,23,17,-7,16,-42,16,-76,16,-115,16,101,16,57,16,14,16,-38,15,-77,15,119,15,74,15,12,15,-42,14,-100,14,91,14,32,14,-35,13,-98,13,90,13,21,13,-47,12,-121,12,66,12,-8,11,-83,11,101,11,22,11,-53,10,-128,10,45,10,-27,9,-109,9,68,9,-8,8,-93,8,89,8,4,8,-61,7,113,7,33,7,-45,6,-127,6,54,6,-29,5,-103,5,70,5,-5,4,-81,4,95,4,21,4,-56,3,125,3,51,3,-23,2,-98,2,88,2,13,2,-57,1,-127,1,56,1,-9,0,-82,0,110,0,38,0,-23,-1,-93,-1,111,-1,48,-1,-21,-2,-76,-2,109,-2,54,-2,-12,-3,-71,-3,125,-3,64,-3,6,-3,-53,-4,-109,-4,85,-4,32,-4,-28,-5,-82,-5,117,-5,62,-5,6,-5,-49,-6,-103,-6,98,-6,44,-6,-8,-7,-66,-7,-114,-7,83,-7,35,-7,-20,-8,-65,-8,-114,-8,86,-8,35,-8,-16,-9,-72,-9,-120,-9,81,-9,31,-9,-21,-10,-73,-10,-126,-10,82,-10,29,-10,-21,-11,-72,-11,-125,-11,86,-11,30,-11,-11,-12,-71,-12,-111,-12,92,-12,44,-12,-1,-13,-51,-13,-95,-13,113,-13,70,-13,26,-13,-15,-14,-59,-14,-104,-14,115,-14,69,-14,36,-14,-8,-15,-43,-15,-80,-15,-114,-15,107,-15,78,-15,41,-15,18,-15,-15,-16,-38,-16,-64,-16,-88,-16,-107,-16,-127,-16,109,-16,99,-16,76,-16,77,-16,55,-16,58,-16,45,-16,48,-16,43,-16,44,-16,46,-16,53,-16,63,-16,72,-16,86,-16,104,-16,120,-16,-110,-16,-90,-16,-62,-16,-33,-16,0,-15,33,-15,73,-15,110,-15,-101,-15,-57,-15,-8,-15,41,-14,97,-14,-106,-14,-46,-14,16,-13,77,-13,-111,-13,-42,-13,26,-12,105,-12,-91,-12,-9,-12,72,-11,-107,-11,-14,-11,63,-10,-97,-10,-12,-10,86,-9,-82,-9,19,-8,113,-8,-42,-8,58,-7,-97,-7,7,-6,112,-6,-40,-6,68,-5,-83,-5,30,-4,-123,-4,-5,-4,94,-3,-40,-3,63,-2,-77,-2,33,-1,-111,-1,-13,-1,103,0,-48,0,70,1,-83,1,33,2,-118,2,-8,2,102,3,-55,3,63,4,-102,4,13,5,107,5,-43,5,53,6,-102,6,-10,6,89,7,-78,7,16,8,104,8,-66,8,22,9,101,9,-69,9,6,10,83,10,-95,10,-30,10,39,11,101,11,-90,11,-24,11,32,12,94,12,-111,12,-56,12,-8,12,40,13,87,13,125,13,-87,13,-52,13,-18,13,16,14,43,14,71,14,98,14,115,14,-117,14,-103,14,-87,14,-75,14,-66,14,-57,14,-52,14,-50,14,-48,14,-54,14,-56,14,-61,14,-68,14,-81,14,-85,14,-106,14,-114,14,122,14,103,14,86,14,61,14,41,14,15,14,-11,13,-39,13,-66,13,-99,13,-125,13,91,13,66,13,24,13,-7,12,-44,12,-84,12,-120,12,97,12,54,12,19,12,-28,11,-62,11,-108,11,109,11,60,11,23,11,-28,10,-65,10,-118,10,98,10,48,10,6,10,-43,9,-90,9,123,9,68,9,32,9,-28,8,-65,8,-121,8,93,8,41,8,-6,7,-53,7,-106,7,107,7,53,7,8,7,-45,6,-89,6,119,6,77,6,21,6,-25,5,-76,5,-128,5,81,5,27,5,-20,4,-75,4,-124,4,79,4,28,4,-24,3}; }
	private static byte[] data6(){ return new byte[] {-77,3,127,3,73,3,20,3,-35,2,-87,2,113,2,59,2,4,2,-56,1,-105,1,89,1,36,1,-25,0,-80,0,125,0,71,0,8,0,-49,-1,-111,-1,87,-1,24,-1,-36,-2,-96,-2,95,-2,36,-2,-30,-3,-89,-3,99,-3,42,-3,-29,-4,-88,-4,101,-4,39,-4,-28,-5,-90,-5,98,-5,37,-5,-32,-6,-94,-6,96,-6,33,-6,-36,-7,-93,-7,90,-7,42,-7,-27,-8,-87,-8,103,-8,44,-8,-22,-9,-80,-9,114,-9,53,-9,-5,-10,-65,-10,-122,-10,77,-10,21,-10,-34,-11,-88,-11,115,-11,63,-11,14,-11,-38,-12,-82,-12,124,-12,81,-12,36,-12,-6,-13,-44,-13,-88,-13,-119,-13,95,-13,69,-13,35,-13,5,-13,-25,-14,-50,-14,-76,-14,-97,-14,-119,-14,118,-14,102,-14,87,-14,76,-14,61,-14,60,-14,47,-14,49,-14,42,-14,46,-14,46,-14,54,-14,58,-14,69,-14,80,-14,93,-14,110,-14,126,-14,-108,-14,-87,-14,-62,-14,-36,-14,-11,-14,21,-13,50,-13,88,-13,122,-13,-95,-13,-54,-13,-14,-13,30,-12,77,-12,122,-12,-82,-12,-34,-12,19,-11,71,-11,-127,-11,-74,-11,-11,-11,42,-10,108,-10,-91,-10,-24,-10,36,-9,104,-9,-88,-9,-20,-9,46,-8,117,-8,-74,-8,-7,-8,58,-7,-122,-7,-55,-7,20,-6,89,-6,-93,-6,-19,-6,51,-5,127,-5,-60,-5,19,-4,84,-4,-89,-4,-26,-4,52,-3,126,-3,-65,-3,17,-2,77,-2,-98,-2,-34,-2,40,-1,108,-1,-80,-1,-10,-1,58,0,123,0,-64,0,-11,0,57,1,119,1,-73,1,-11,1,51,2,112,2,-84,2,-26,2,33,3,89,3,-108,3,-57,3,3,4,51,4,107,4,-98,4,-50,4,4,5,49,5,99,5,-111,5,-65,5,-21,5,26,6,64,6,113,6,-108,6,-63,6,-26,6,5,7,46,7,79,7,121,7,-107,7,-65,7,-36,7,0,8,33,8,60,8,98,8,122,8,-100,8,-74,8,-45,8,-16,8,8,9,37,9,60,9,87,9,110,9,-122,9,-98,9,-78,9,-54,9,-33,9,-16,9,12,10,21,10,46,10,59,10,78,10,96,10,110,10,-127,10,-114,10,-99,10,-85,10,-72,10,-59,10,-48,10,-36,10,-27,10,-16,10,-7,10,-1,10,8,11,15,11,19,11,24,11,29,11,30,11,35,11,33,11,36,11,32,11,33,11,28,11,25,11,23,11,17,11,10,11,0,11,-7,10,-20,10,-30,10,-44,10,-59,10,-74,10,-92,10,-109,10,125,10,108,10,79,10,61,10,33,10,5,10,-19,9,-55,9,-79,9,-118,9,108,9,70,9,34,9,-5,8,-44,8,-88,8,-128,8,87,8,45,8,-5,7,-53,7,-102,7,99,7,49,7,-7,6,-64,6,-116,6,73,6,22,6,-48,5,-102,5,83,5,26,5,-48,4,-109,4,76,4,6,4,-60,3,119,3,53,3,-24,2,-96,2,85,2,10,2,-65,1,114,1,47,1,-33,0,-107,0,67,0,-7,-1,-91,-1,91,-1,8,-1,-67,-2,105,-2,31,-2,-52,-3,127,-3,50,-3,-32,-4,-106,-4,71,-4,-7,-5,-81,-5,97,-5,23,-5,-50,-6,-127,-6,62,-6,-17,-7,-80,-7,99,-7,37,-7,-35,-8,-99,-8,98,-8,35,-8,-28,-9,-89,-9,108,-9,49,-9,-8,-10,-61,-10,-117,-10,90,-10,38,-10,-10,-11,-57,-11,-101,-11,111,-11,72,-11,30,-11,-7,-12,-41,-12,-77,-12,-106,-12,117,-12,94,-12,61,-12,44,-12,18,-12,-1,-13,-17,-13,-37,-13,-44,-13,-61,-13,-66,-13,-79,-13,-82,-13,-89,-13,-90,-13,-92,-13,-87,-13,-92,-13,-75,-13,-84,-13,-58,-13,-63,-13,-40,-13,-34,-13,-13,-13,-1,-13,24,-12,37,-12,65,-12,84,-12,110,-12,-117,-12,-95,-12,-60,-12,-34,-12,-1,-12,33,-11,65,-11,98,-11,-120,-11,-86,-11,-45,-11,-6,-11,33,-10,75,-10,117,-10,-96,-10,-52,-10,-7,-10,36,-9,85,-9,-127,-9,-78,-9,-31,-9,18,-8,66,-8,115,-8,-90,-8,-40,-8,10,-7,62,-7,110,-7,-89,-7,-43,-7,14,-6,62,-6,117,-6,-94,-6,-41,-6,11,-5,63,-5,119,-5,-90,-5,-30,-5,17,-4,74,-4,124,-4,-78,-4,-25,-4,27,-3,80,-3,-124,-3,-71,-3,-18,-3,32,-2,85,-2,-118,-2,-68,-2,-15,-2,35,-1,87,-1,-118,-1,-67,-1,-17,-1,34,0,83,0,-128,0,-83,0,-29,0,19,1,67,1,117,1,-90,1,-43,1,8,2,54,2,101,2,-104,2,-60,2,-12,2,36,3,80,3,-126,3,-83,3,-37,3,11,4,51,4,103,4,-117,4,-64,4,-27,4,20,5,63,5,103,5,-107,5,-66,5,-33,5,11,6,50,6,92,6,-125,6,-86,6,-45,6,-11,6,34,7,64,7,106,7,-115,7,-82,7,-42,7,-14,7,27,8,53,8,90,8,120,8,-106,8,-74,8,-47,8,-17,8,8,9,39,9,60,9}; }
	private static byte[] data7(){ return new byte[] {89,9,109,9,-121,9,-104,9,-81,9,-62,9,-44,9,-24,9,-8,9,5,10,25,10,32,10,48,10,60,10,64,10,81,10,78,10,94,10,91,10,98,10,101,10,96,10,103,10,95,10,94,10,90,10,81,10,76,10,66,10,57,10,43,10,31,10,17,10,3,10,-15,9,-31,9,-55,9,-73,9,-96,9,-123,9,112,9,81,9,55,9,26,9,-7,8,-36,8,-73,8,-104,8,114,8,77,8,40,8,-1,7,-40,7,-83,7,-125,7,87,7,43,7,-4,6,-51,6,-97,6,107,6,63,6,13,6,-34,5,-87,5,114,5,67,5,5,5,-42,4,-103,4,101,4,43,4,-13,3,-69,3,127,3,71,3,13,3,-46,2,-106,2,97,2,28,2,-20,1,-88,1,114,1,54,1,-6,0,-64,0,-125,0,75,0,15,0,-42,-1,-94,-1,106,-1,46,-1,-7,-2,-67,-2,-121,-2,77,-2,26,-2,-36,-3,-81,-3,114,-3,67,-3,9,-3,-38,-4,-92,-4,116,-4,66,-4,15,-4,-29,-5,-80,-5,-123,-5,85,-5,40,-5,0,-5,-49,-6,-84,-6,123,-6,89,-6,47,-6,9,-6,-23,-7,-60,-7,-95,-7,126,-7,92,-7,60,-7,26,-7,-3,-8,-34,-8,-63,-8,-91,-8,-116,-8,109,-8,90,-8,59,-8,42,-8,14,-8,0,-8,-30,-9,-40,-9,-67,-9,-78,-9,-97,-9,-114,-9,-127,-9,113,-9,101,-9,91,-9,76,-9,72,-9,58,-9,52,-9,44,-9,35,-9,31,-9,25,-9,20,-9,17,-9,14,-9,10,-9,11,-9,10,-9,10,-9,13,-9,10,-9,19,-9,16,-9,27,-9,27,-9,35,-9,41,-9,48,-9,56,-9,67,-9,72,-9,88,-9,95,-9,108,-9,121,-9,-125,-9,-112,-9,-93,-9,-84,-9,-62,-9,-50,-9,-28,-9,-14,-9,9,-8,26,-8,46,-8,72,-8,87,-8,118,-8,-123,-8,-93,-8,-70,-8,-45,-8,-16,-8,7,-7,40,-7,64,-7,97,-7,123,-7,-97,-7,-70,-7,-34,-7,-4,-7,31,-6,60,-6,95,-6,-126,-6,-88,-6,-53,-6,-12,-6,23,-5,66,-5,103,-5,-111,-5,-69,-5,-29,-5,15,-4,58,-4,101,-4,-109,-4,-65,-4,-20,-4,27,-3,73,-3,122,-3,-90,-3,-36,-3,5,-2,63,-2,103,-2,-94,-2,-52,-2,8,-1,42,-1,102,-1,-109,-1,-53,-1,-1,-1,48,0,105,0,-101,0,-48,0,8,1,56,1,113,1,-91,1,-39,1,17,2,67,2,122,2,-83,2,-29,2,22,3,75,3,-128,3,-78,3,-27,3,24,4,76,4,124,4,-81,4,-34,4,16,5,58,5,106,5,-105,5,-58,5,-12,5,30,6,78,6,118,6,-97,6,-50,6,-18,6,30,7,62,7,104,7,-118,7,-81,7,-48,7,-13,7,18,8,50,8,81,8,107,8,-118,8,-94,8,-68,8,-43,8,-21,8,-1,8,23,9,34,9,59,9,67,9,91,9,96,9,115,9,123,9,-123,9,-115,9,-107,9,-104,9,-96,9,-96,9,-95,9,-93,9,-97,9,-96,9,-104,9,-106,9,-116,9,-123,9,125,9,113,9,101,9,87,9,74,9,55,9,43,9,19,9,2,9,-15,8,-41,8,-60,8,-86,8,-112,8,120,8,90,8,63,8,34,8,1,8,-27,7,-64,7,-92,7,124,7,94,7,55,7,18,7,-18,6,-59,6,-95,6,119,6,78,6,39,6,-6,5,-45,5,-92,5,124,5,77,5,34,5,-6,4,-52,4,-97,4,112,4,66,4,18,4,-29,3,-75,3,-125,3,86,3,34,3,-12,2,-61,2,-109,2,97,2,50,2,-1,1,-48,1,-98,1,110,1,61,1,12,1,-36,0,-86,0,124,0,75,0,25,0,-20,-1,-69,-1,-111,-1,102,-1,50,-1,9,-1,-43,-2,-84,-2,122,-2,81,-2,33,-2,-9,-3,-56,-3,-96,-3,113,-3,73,-3,29,-3,-13,-4,-51,-4,-97,-4,124,-4,78,-4,44,-4,2,-4,-34,-5,-73,-5,-111,-5,112,-5,71,-5,40,-5,3,-5,-31,-6,-57,-6,-92,-6,-125,-6,102,-6,68,-6,41,-6,9,-6,-19,-7,-47,-7,-75,-7,-101,-7,127,-7,105,-7,77,-7,56,-7,30,-7,11,-7,-15,-8,-29,-8,-58,-8,-69,-8,-92,-8,-109,-8,-125,-8,114,-8,100,-8,84,-8,72,-8,57,-8,50,-8,36,-8,27,-8,16,-8,11,-8,-2,-9,-4,-9,-15,-9,-16,-9,-24,-9,-22,-9,-32,-9,-27,-9,-34,-9,-27,-9,-33,-9,-25,-9,-28,-9,-20,-9,-18,-9,-10,-9,-8,-9,4,-8,9,-8,19,-8,30,-8,38,-8,52,-8,64,-8,77,-8,90,-8,105,-8,120,-8,-118,-8,-101,-8,-82,-8,-63,-8,-42,-8,-22,-8,0,-7,25,-7,45,-7,72,-7,97,-7,121,-7,-105,-7,-81,-7,-50,-7,-23,-7,8,-6,40,-6,67,-6,104,-6,-126,-6,-85,-6,-58,-6,-19,-6,15,-5,48,-5,84,-5,116,-5,-99,-5,-64,-5,-22,-5,13,-4,54,-4,95,-4,-124,-4}; }
	private static byte[] data8(){ return new byte[] {-78,-4,-43,-4,3,-3,42,-3,85,-3,-127,-3,-88,-3,-40,-3,-2,-3,45,-2,87,-2,-125,-2,-80,-2,-37,-2,7,-1,53,-1,94,-1,-113,-1,-74,-1,-24,-1,10,0,56,0,99,0,-111,0,-69,0,-22,0,17,1,64,1,106,1,-108,1,-62,1,-23,1,21,2,63,2,102,2,-109,2,-71,2,-30,2,11,3,48,3,90,3,126,3,-90,3,-53,3,-18,3,21,4,55,4,92,4,126,4,-97,4,-68,4,-35,4,-2,4,29,5,59,5,90,5,118,5,-107,5,-81,5,-53,5,-26,5,-3,5,27,6,44,6,74,6,92,6,117,6,-121,6,-98,6,-82,6,-62,6,-43,6,-30,6,-9,6,1,7,18,7,30,7,44,7,54,7,63,7,75,7,81,7,92,7,98,7,104,7,112,7,113,7,121,7,121,7,126,7,125,7,125,7,-128,7,123,7,125,7,119,7,116,7,111,7,109,7,97,7,96,7,85,7,76,7,69,7,57,7,45,7,38,7,20,7,11,7,-3,6,-19,6,-30,6,-51,6,-64,6,-83,6,-102,6,-119,6,116,6,96,6,76,6,53,6,33,6,7,6,-12,5,-41,5,-61,5,-90,5,-113,5,114,5,90,5,60,5,33,5,5,5,-27,4,-52,4,-87,4,-113,4,108,4,85,4,49,4,19,4,-13,3,-48,3,-79,3,-116,3,106,3,75,3,35,3,6,3,-38,2,-66,2,-109,2,117,2,74,2,43,2,0,2,-33,1,-74,1,-110,1,108,1,69,1,31,1,-8,0,-46,0,-85,0,-123,0,93,0,61,0,20,0,-17,-1,-57,-1,-96,-1,123,-1,81,-1,45,-1,3,-1,-32,-2,-74,-2,-109,-2,105,-2,71,-2,28,-2,-4,-3,-48,-3,-79,-3,-120,-3,99,-3,66,-3,24,-3,-7,-4,-44,-4,-81,-4,-114,-4,107,-4,71,-4,40,-4,4,-4,-21,-5,-58,-5,-86,-5,-121,-5,107,-5,75,-5,44,-5,17,-5,-16,-6,-39,-6,-71,-6,-97,-6,-122,-6,106,-6,82,-6,57,-6,33,-6,9,-6,-11,-7,-36,-7,-55,-7,-76,-7,-96,-7,-115,-7,124,-7,105,-7,90,-7,74,-7,57,-7,48,-7,31,-7,21,-7,9,-7,-4,-8,-12,-8,-23,-8,-30,-8,-37,-8,-46,-8,-49,-8,-56,-8,-59,-8,-63,-8,-64,-8,-66,-8,-66,-8,-66,-8,-66,-8,-60,-8,-62,-8,-52,-8,-53,-8,-43,-8,-39,-8,-29,-8,-23,-8,-13,-8,-1,-8,7,-7,21,-7,30,-7,45,-7,60,-7,74,-7,92,-7,107,-7,125,-7,-111,-7,-95,-7,-70,-7,-55,-7,-27,-7,-12,-7,19,-6,36,-6,66,-6,87,-6,116,-6,-115,-6,-87,-6,-58,-6,-32,-6,0,-5,28,-5,59,-5,93,-5,118,-5,-98,-5,-78,-5,-35,-5,-11,-5,31,-4,60,-4,98,-4,-123,-4,-88,-4,-50,-4,-16,-4,24,-3,60,-3,97,-3,-120,-3,-82,-3,-44,-3,-3,-3,32,-2,76,-2,110,-2,-100,-2,-67,-2,-23,-2,16,-1,55,-1,98,-1,-123,-1,-79,-1,-41,-1,-4,-1,35,0,74,0,114,0,-101,0,-63,0,-21,0,15,1,57,1,95,1,-123,1,-83,1,-47,1,-6,1,29,2,68,2,104,2,-114,2,-79,2,-42,2,-9,2,31,3,60,3,99,3,-127,3,-91,3,-61,3,-25,3,2,4,37,4,61,4,92,4,122,4,-106,4,-77,4,-52,4,-21,4,2,5,30,5,54,5,77,5,103,5,123,5,-108,5,-89,5,-66,5,-48,5,-29,5,-9,5,6,6,26,6,40,6,55,6,71,6,82,6,98,6,108,6,119,6,-125,6,-118,6,-111,6,-97,6,-100,6,-82,6,-86,6,-75,6,-76,6,-68,6,-72,6,-64,6,-69,6,-66,6,-68,6,-71,6,-73,6,-77,6,-79,6,-89,6,-89,6,-102,6,-105,6,-115,6,-124,6,122,6,111,6,100,6,87,6,76,6,61,6,47,6,35,6,16,6,3,6,-17,5,-31,5,-54,5,-70,5,-90,5,-111,5,126,5,101,5,83,5,56,5,38,5,9,5,-12,4,-38,4,-62,4,-89,4,-116,4,115,4,85,4,63,4,28,4,5,4,-28,3,-54,3,-86,3,-109,3,112,3,87,3,51,3,24,3,-11,2,-39,2,-76,2,-101,2,114,2,89,2,52,2,19,2,-12,1,-47,1,-80,1,-111,1,106,1,78,1,38,1,12,1,-29,0,-59,0,-93,0,126,0,97,0,59,0,27,0,-7,-1,-35,-1,-70,-1,-102,-1,120,-1,86,-1,54,-1,21,-1,-13,-2,-43,-2,-78,-2,-110,-2,116,-2,82,-2,52,-2,21,-2,-12,-3,-40,-3,-74,-3,-100,-3,123,-3,95,-3,67,-3,33,-3,13,-3,-24,-4,-44,-4,-77,-4,-101,-4,127,-4,103,-4,79,-4,56,-4,27,-4,8,-4,-21,-5,-40,-5,-66,-5,-87,-5,-111,-5,127,-5,102,-5,85,-5,63,-5,44,-5,26,-5,6,-5,-9,-6,-29,-6,-44,-6,-61,-6,-76,-6}; }
	private static byte[] data9(){ return new byte[] {-90,-6,-105,-6,-118,-6,123,-6,113,-6,100,-6,89,-6,79,-6,70,-6,61,-6,52,-6,44,-6,37,-6,30,-6,25,-6,16,-6,17,-6,7,-6,9,-6,1,-6,5,-6,-4,-7,4,-6,-3,-7,0,-6,4,-6,1,-6,9,-6,8,-6,15,-6,18,-6,25,-6,30,-6,38,-6,43,-6,54,-6,61,-6,72,-6,79,-6,91,-6,102,-6,113,-6,-128,-6,-117,-6,-101,-6,-87,-6,-74,-6,-52,-6,-45,-6,-17,-6,-9,-6,16,-5,32,-5,51,-5,74,-5,91,-5,115,-5,-121,-5,-99,-5,-74,-5,-53,-5,-27,-5,-7,-5,24,-4,44,-4,72,-4,99,-4,118,-4,-106,-4,-83,-4,-52,-4,-26,-4,4,-3,31,-3,62,-3,90,-3,122,-3,-107,-3,-74,-3,-44,-3,-14,-3,18,-2,49,-2,81,-2,112,-2,-111,-2,-81,-2,-46,-2,-15,-2,17,-1,50,-1,84,-1,112,-1,-102,-1,-82,-1,-37,-1,-17,-1,18,0,54,0,80,0,119,0,-109,0,-74,0,-43,0,-11,0,22,1,51,1,87,1,113,1,-105,1,-82,1,-44,1,-20,1,14,2,43,2,72,2,103,2,127,2,-93,2,-74,2,-37,2,-16,2,12,3,42,3,63,3,94,3,111,3,-117,3,-95,3,-68,3,-48,3,-23,3,-1,3,19,4,43,4,63,4,82,4,104,4,120,4,-115,4,-97,4,-82,4,-62,4,-48,4,-31,4,-17,4,-2,4,11,5,26,5,36,5,50,5,60,5,73,5,79,5,93,5,96,5,109,5,112,5,123,5,126,5,-123,5,-116,5,-116,5,-108,5,-107,5,-104,5,-102,5,-101,5,-102,5,-99,5,-101,5,-104,5,-102,5,-111,5,-106,5,-117,5,-117,5,-124,5,127,5,121,5,113,5,108,5,95,5,94,5,77,5,75,5,60,5,51,5,42,5,25,5,18,5,1,5,-12,4,-23,4,-42,4,-54,4,-70,4,-89,4,-101,4,-123,4,120,4,98,4,82,4,61,4,44,4,21,4,4,4,-20,3,-40,3,-60,3,-86,3,-102,3,123,3,107,3,81,3,62,3,35,3,10,3,-13,2,-40,2,-64,2,-92,2,-118,2,115,2,81,2,64,2,26,2,6,2,-26,1,-52,1,-81,1,-109,1,116,1,90,1,60,1,30,1,1,1,-28,0,-59,0,-87,0,-119,0,109,0,77,0,54,0,20,0,-8,-1,-38,-1,-70,-1,-97,-1,123,-1,101,-1,61,-1,41,-1,1,-1,-21,-2,-56,-2,-82,-2,-116,-2,115,-2,81,-2,56,-2,24,-2,-4,-3,-31,-3,-64,-3,-85,-3,-121,-3,114,-3,82,-3,57,-3,30,-3,5,-3,-25,-4,-43,-4,-71,-4,-97,-4,-117,-4,108,-4,90,-4,64,-4,41,-4,20,-4,-4,-5,-24,-5,-46,-5,-65,-5,-87,-5,-105,-5,-123,-5,112,-5,97,-5,78,-5,62,-5,47,-5,30,-5,17,-5,1,-5,-10,-6,-24,-6,-37,-6,-45,-6,-62,-6,-63,-6,-79,-6,-83,-6,-94,-6,-101,-6,-105,-6,-116,-6,-115,-6,-125,-6,-124,-6,125,-6,126,-6,122,-6,122,-6,123,-6,122,-6,125,-6,127,-6,-128,-6,-123,-6,-119,-6,-114,-6,-107,-6,-102,-6,-95,-6,-86,-6,-78,-6,-68,-6,-59,-6,-48,-6,-38,-6,-25,-6,-14,-6,0,-5,14,-5,27,-5,46,-5,56,-5,77,-5,92,-5,109,-5,-126,-5,-112,-5,-89,-5,-71,-5,-52,-5,-27,-5,-11,-5,13,-4,38,-4,52,-4,87,-4,99,-4,-126,-4,-103,-4,-82,-4,-53,-4,-30,-4,-4,-4,20,-3,44,-3,72,-3,97,-3,126,-3,-105,-3,-76,-3,-50,-3,-21,-3,6,-2,35,-2,62,-2,90,-2,120,-2,-109,-2,-81,-2,-49,-2,-26,-2,8,-1,33,-1,64,-1,91,-1,120,-1,-107,-1,-79,-1,-50,-1,-23,-1,6,0,35,0,57,0,87,0,112,0,-115,0,-86,0,-62,0,-33,0,-8,0,20,1,46,1,73,1,96,1,123,1,-107,1,-83,1,-58,1,-33,1,-12,1,16,2,37,2,60,2,85,2,103,2,-126,2,-107,2,-85,2,-65,2,-43,2,-24,2,-1,2,10,3,35,3,48,3,70,3,88,3,103,3,123,3,-118,3,-103,3,-83,3,-74,3,-50,3,-47,3,-22,3,-15,3,1,4,12,4,27,4,35,4,50,4,60,4,69,4,81,4,89,4,99,4,107,4,117,4,121,4,-122,4,-124,4,-109,4,-111,4,-100,4,-98,4,-92,4,-89,4,-84,4,-83,4,-78,4,-78,4,-75,4,-74,4,-76,4,-71,4,-76,4,-72,4,-79,4,-75,4,-83,4,-80,4,-88,4,-89,4,-94,4,-99,4,-103,4,-109,4,-117,4,-121,4,125,4,122,4,112,4,104,4,94,4,87,4,73,4,68,4,52,4,44,4,31,4,18,4,7,4,-8,3,-20,3,-36,3,-48,3,-67,3,-78,3,-97,3,-112,3,-128,3,109,3,92,3,75,3,55,3,37,3,20,3,-5,2,-18,2,-42,2,-57,2,-82,2,-101,2}; }
	private static byte[] data10(){ return new byte[] {-125,2,112,2,88,2,65,2,42,2,21,2,-7,1,-25,1,-55,1,-74,1,-103,1,-123,1,102,1,84,1,51,1,33,1,0,1,-19,0,-51,0,-72,0,-103,0,-125,0,102,0,76,0,50,0,26,0,0,0,-25,-1,-55,-1,-78,-1,-108,-1,123,-1,98,-1,68,-1,47,-1,14,-1,-6,-2,-36,-2,-60,-2,-86,-2,-110,-2,116,-2,98,-2,65,-2,48,-2,19,-2,-5,-3,-26,-3,-53,-3,-73,-3,-98,-3,-121,-3,114,-3,91,-3,71,-3,51,-3,30,-3,12,-3,-12,-4,-27,-4,-50,-4,-67,-4,-87,-4,-101,-4,-124,-4,122,-4,99,-4,87,-4,70,-4,56,-4,39,-4,32,-4,8,-4,7,-4,-16,-5,-21,-5,-34,-5,-45,-5,-56,-5,-62,-5,-76,-5,-79,-5,-92,-5,-95,-5,-104,-5,-108,-5,-113,-5,-122,-5,-120,-5,125,-5,127,-5,122,-5,120,-5,118,-5,119,-5,114,-5,121,-5,114,-5,121,-5,120,-5,122,-5,126,-5,-127,-5,-124,-5,-117,-5,-117,-5,-105,-5,-107,-5,-91,-5,-95,-5,-77,-5,-77,-5,-64,-5,-57,-5,-50,-5,-37,-5,-31,-5,-16,-5,-9,-5,5,-4,16,-4,27,-4,42,-4,54,-4,65,-4,85,-4,91,-4,113,-4,122,-4,-114,-4,-102,-4,-84,-4,-68,-4,-54,-4,-33,-4,-20,-4,1,-3,16,-3,35,-3,53,-3,71,-3,91,-3,109,-3,124,-3,-109,-3,-95,-3,-68,-3,-55,-3,-30,-3,-13,-3,10,-2,29,-2,52,-2,70,-2,93,-2,114,-2,-121,-2,-99,-2,-78,-2,-55,-2,-35,-2,-12,-2,10,-1,31,-1,56,-1,75,-1,99,-1,122,-1,-115,-1,-88,-1,-69,-1,-45,-1,-25,-1,-6,-1,21,0,39,0,65,0,86,0,109,0,-125,0,-104,0,-78,0,-61,0,-32,0,-18,0,11,1,29,1,52,1,75,1,92,1,121,1,-122,1,-93,1,-78,1,-55,1,-32,1,-15,1,8,2,27,2,47,2,67,2,87,2,102,2,125,2,-117,2,-93,2,-82,2,-54,2,-46,2,-20,2,-10,2,13,3,25,3,46,3,56,3,78,3,89,3,106,3,119,3,-120,3,-110,3,-93,3,-83,3,-68,3,-56,3,-46,3,-32,3,-25,3,-10,3,-4,3,9,4,14,4,24,4,32,4,39,4,48,4,52,4,60,4,65,4,68,4,78,4,75,4,84,4,84,4,87,4,89,4,91,4,88,4,94,4,87,4,93,4,84,4,89,4,80,4,81,4,75,4,72,4,65,4,62,4,53,4,48,4,43,4,31,4,28,4,14,4,8,4,-2,3,-14,3,-26,3,-33,3,-52,3,-57,3,-76,3,-88,3,-99,3,-119,3,127,3,108,3,92,3,79,3,59,3,42,3,26,3,4,3,-8,2,-34,2,-48,2,-71,2,-89,2,-110,2,-128,2,105,2,89,2,60,2,47,2,16,2,1,2,-27,1,-46,1,-71,1,-92,1,-119,1,119,1,89,1,71,1,43,1,21,1,-3,0,-27,0,-52,0,-76,0,-100,0,-124,0,108,0,82,0,60,0,35,0,10,0,-12,-1,-35,-1,-57,-1,-82,-1,-105,-1,127,-1,104,-1,81,-1,59,-1,34,-1,13,-1,-10,-2,-33,-2,-52,-2,-78,-2,-95,-2,-120,-2,117,-2,98,-2,72,-2,60,-2,32,-2,19,-2,-4,-3,-20,-3,-42,-3,-56,-3,-78,-3,-92,-3,-110,-3,-127,-3,115,-3,99,-3,83,-3,71,-3,52,-3,40,-3,25,-3,11,-3,0,-3,-15,-4,-27,-4,-38,-4,-51,-4,-61,-4,-72,-4,-82,-4,-93,-4,-101,-4,-111,-4,-120,-4,-125,-4,117,-4,117,-4,104,-4,101,-4,95,-4,85,-4,86,-4,76,-4,77,-4,69,-4,67,-4,64,-4,58,-4,61,-4,50,-4,56,-4,45,-4,52,-4,43,-4,45,-4,44,-4,41,-4,44,-4,31,-4,37,-4,34,-4,40,-4,39,-4,43,-4,46,-4,50,-4,54,-4,58,-4,63,-4,70,-4,72,-4,84,-4,84,-4,97,-4,98,-4,112,-4,114,-4,-127,-4,-122,-4,-112,-4,-100,-4,-92,-4,-80,-4,-69,-4,-59,-4,-44,-4,-36,-4,-19,-4,-10,-4,5,-3,19,-3,33,-3,46,-3,61,-3,77,-3,89,-3,110,-3,120,-3,-116,-3,-102,-3,-83,-3,-70,-3,-51,-3,-37,-3,-18,-3,1,-2,15,-2,39,-2,51,-2,74,-2,92,-2,110,-2,-127,-2,-105,-2,-92,-2,-63,-2,-53,-2,-25,-2,-13,-2,16,-1,27,-1,55,-1,69,-1,94,-1,111,-1,-121,-1,-105,-1,-80,-1,-62,-1,-42,-1,-19,-1,-4,-1,18,0,38,0,59,0,78,0,99,0,121,0,-119,0,-93,0,-80,0,-53,0,-40,0,-14,0,0,1,24,1,40,1,61,1,79,1,97,1,118,1,-122,1,-102,1,-87,1,-65,1,-51,1,-32,1,-15,1,1,2,18,2,35,2,47,2,65,2,79,2,95,2,109,2,125,2,-119,2,-101,2,-92,2,-75,2,-63,2,-53,2,-35,2,-29,2,-14,2,-2,2}; }
	private static byte[] data11(){ return new byte[] {6,3,19,3,28,3,38,3,47,3,58,3,63,3,76,3,79,3,91,3,94,3,103,3,109,3,113,3,120,3,124,3,-128,3,-122,3,-120,3,-115,3,-113,3,-111,3,-107,3,-107,3,-105,3,-103,3,-107,3,-101,3,-106,3,-104,3,-107,3,-108,3,-111,3,-112,3,-116,3,-120,3,-121,3,126,3,-128,3,114,3,120,3,102,3,108,3,89,3,95,3,78,3,77,3,65,3,56,3,50,3,39,3,30,3,20,3,9,3,0,3,-13,2,-23,2,-36,2,-46,2,-60,2,-71,2,-85,2,-100,2,-109,2,-127,2,117,2,102,2,87,2,74,2,56,2,44,2,23,2,16,2,-5,1,-19,1,-36,1,-54,1,-69,1,-86,1,-105,1,-121,1,116,1,100,1,81,1,64,1,44,1,28,1,8,1,-11,0,-27,0,-50,0,-63,0,-87,0,-103,0,-123,0,114,0,95,0,77,0,57,0,38,0,19,0,3,0,-17,-1,-34,-1,-56,-1,-71,-1,-94,-1,-110,-1,126,-1,107,-1,91,-1,69,-1,54,-1,32,-1,17,-1,-3,-2,-18,-2,-40,-2,-53,-2,-75,-2,-89,-2,-107,-2,-123,-2,113,-2,101,-2,81,-2,68,-2,50,-2,35,-2,20,-2,4,-2,-8,-3,-23,-3,-37,-3,-51,-3,-66,-3,-78,-3,-94,-3,-103,-3,-120,-3,-128,-3,112,-3,102,-3,91,-3,78,-3,70,-3,57,-3,48,-3,38,-3,28,-3,20,-3,11,-3,1,-3,-5,-4,-13,-4,-23,-4,-23,-4,-40,-4,-35,-4,-51,-4,-47,-4,-58,-4,-60,-4,-64,-4,-71,-4,-69,-4,-79,-4,-76,-4,-82,-4,-82,-4,-84,-4,-85,-4,-87,-4,-86,-4,-87,-4,-86,-4,-84,-4,-85,-4,-83,-4,-80,-4,-79,-4,-74,-4,-74,-4,-67,-4,-67,-4,-59,-4,-57,-4,-50,-4,-47,-4,-38,-4,-36,-4,-26,-4,-23,-4,-12,-4,-10,-4,6,-3,5,-3,22,-3,25,-3,37,-3,46,-3,55,-3,67,-3,75,-3,90,-3,96,-3,111,-3,122,-3,-125,-3,-106,-3,-102,-3,-80,-3,-77,-3,-53,-3,-50,-3,-26,-3,-21,-3,1,-2,8,-2,29,-2,37,-2,56,-2,70,-2,84,-2,104,-2,115,-2,-122,-2,-106,-2,-92,-2,-71,-2,-61,-2,-36,-2,-28,-2,-3,-2,8,-1,29,-1,45,-1,61,-1,81,-1,96,-1,116,-1,-125,-1,-106,-1,-88,-1,-71,-1,-53,-1,-36,-1,-17,-1,-3,-1,16,0,31,0,52,0,67,0,87,0,102,0,119,0,-116,0,-103,0,-82,0,-67,0,-52,0,-31,0,-17,0,0,1,18,1,32,1,49,1,66,1,81,1,96,1,114,1,126,1,-113,1,-96,1,-88,1,-64,1,-59,1,-39,1,-28,1,-17,1,0,2,9,2,27,2,33,2,53,2,58,2,76,2,82,2,97,2,106,2,119,2,126,2,-117,2,-109,2,-100,2,-87,2,-86,2,-68,2,-68,2,-55,2,-50,2,-43,2,-34,2,-31,2,-21,2,-19,2,-11,2,-7,2,-4,2,3,3,3,3,12,3,10,3,18,3,15,3,23,3,18,3,28,3,21,3,28,3,23,3,28,3,23,3,26,3,23,3,21,3,21,3,18,3,15,3,13,3,8,3,7,3,0,3,-1,2,-8,2,-13,2,-17,2,-24,2,-27,2,-37,2,-40,2,-51,2,-53,2,-67,2,-68,2,-84,2,-84,2,-101,2,-105,2,-115,2,-128,2,123,2,107,2,101,2,88,2,77,2,67,2,52,2,44,2,29,2,18,2,5,2,-7,1,-23,1,-31,1,-51,1,-58,1,-73,1,-88,1,-101,1,-116,1,125,1,111,1,96,1,80,1,67,1,50,1,34,1,21,1,2,1,-11,0,-29,0,-43,0,-61,0,-73,0,-97,0,-104,0,-128,0,116,0,99,0,81,0,68,0,47,0,34,0,16,0,2,0,-14,-1,-29,-1,-49,-1,-60,-1,-83,-1,-94,-1,-112,-1,-128,-1,113,-1,95,-1,81,-1,64,-1,49,-1,33,-1,19,-1,2,-1,-12,-2,-28,-2,-42,-2,-57,-2,-72,-2,-86,-2,-100,-2,-114,-2,127,-2,115,-2,99,-2,90,-2,71,-2,66,-2,49,-2,39,-2,27,-2,11,-2,6,-2,-12,-3,-19,-3,-30,-3,-45,-3,-49,-3,-65,-3,-71,-3,-83,-3,-91,-3,-100,-3,-110,-3,-117,-3,-126,-3,122,-3,115,-3,108,-3,100,-3,95,-3,87,-3,82,-3,76,-3,71,-3,66,-3,61,-3,58,-3,54,-3,48,-3,48,-3,41,-3,43,-3,36,-3,38,-3,33,-3,33,-3,33,-3,30,-3,32,-3,31,-3,30,-3,34,-3,31,-3,36,-3,35,-3,39,-3,40,-3,44,-3,45,-3,52,-3,50,-3,61,-3,59,-3,68,-3,71,-3,75,-3,82,-3,88,-3,92,-3,102,-3,105,-3,116,-3,119,-3,-125,-3,-121,-3,-109,-3,-102,-3,-96,-3,-82,-3,-76,-3,-67,-3,-52,-3,-49,-3,-33,-3,-25,-3,-16,-3,0,-2,8,-2,20,-2,33,-2,41,-2,58,-2,68,-2}; }
	private static byte[] data12(){ return new byte[] {80,-2,93,-2,103,-2,118,-2,-123,-2,-116,-2,-94,-2,-88,-2,-69,-2,-56,-2,-46,-2,-25,-2,-16,-2,1,-1,15,-1,28,-1,46,-1,58,-1,74,-1,89,-1,104,-1,120,-1,-125,-1,-103,-1,-95,-1,-73,-1,-63,-1,-45,-1,-32,-1,-13,-1,-4,-1,14,0,28,0,43,0,59,0,74,0,89,0,103,0,120,0,-123,0,-108,0,-91,0,-80,0,-63,0,-48,0,-37,0,-20,0,-5,0,4,1,25,1,31,1,51,1,61,1,74,1,90,1,98,1,117,1,123,1,-116,1,-106,1,-95,1,-84,1,-72,1,-60,1,-52,1,-35,1,-31,1,-17,1,-7,1,1,2,13,2,23,2,28,2,43,2,45,2,60,2,62,2,76,2,77,2,91,2,92,2,103,2,107,2,114,2,120,2,125,2,-125,2,-121,2,-115,2,-113,2,-108,2,-104,2,-101,2,-97,2,-96,2,-92,2,-90,2,-89,2,-85,2,-87,2,-84,2,-83,2,-86,2,-80,2,-87,2,-82,2,-87,2,-87,2,-87,2,-92,2,-89,2,-99,2,-94,2,-104,2,-102,2,-110,2,-110,2,-119,2,-118,2,-127,2,126,2,120,2,114,2,108,2,104,2,93,2,91,2,79,2,76,2,65,2,59,2,51,2,41,2,34,2,24,2,14,2,8,2,-6,1,-12,1,-25,1,-34,1,-43,1,-57,1,-65,1,-78,1,-88,1,-99,1,-113,1,-120,1,121,1,111,1,98,1,85,1,74,1,59,1,48,1,35,1,20,1,9,1,-5,0,-19,0,-31,0,-48,0,-56,0,-77,0,-83,0,-103,0,-114,0,127,0,113,0,99,0,86,0,69,0,60,0,38,0,33,0,11,0,3,0,-11,-1,-29,-1,-38,-1,-55,-1,-69,-1,-82,-1,-97,-1,-110,-1,-124,-1,119,-1,102,-1,94,-1,75,-1,65,-1,52,-1,34,-1,28,-1,10,-1,-2,-2,-12,-2,-29,-2,-38,-2,-51,-2,-64,-2,-75,-2,-86,-2,-101,-2,-108,-2,-123,-2,126,-2,114,-2,104,-2,91,-2,85,-2,70,-2,65,-2,51,-2,45,-2,32,-2,28,-2,13,-2,11,-2,-2,-3,-8,-3,-16,-3,-25,-3,-29,-3,-41,-3,-42,-3,-53,-3,-57,-3,-63,-3,-71,-3,-73,-3,-81,-3,-84,-3,-89,-3,-95,-3,-96,-3,-101,-3,-105,-3,-106,-3,-113,-3,-111,-3,-116,-3,-118,-3,-119,-3,-121,-3,-122,-3,-122,-3,-124,-3,-123,-3,-125,-3,-122,-3,-124,-3,-121,-3,-120,-3,-121,-3,-116,-3,-117,-3,-111,-3,-113,-3,-105,-3,-107,-3,-99,-3,-98,-3,-93,-3,-90,-3,-83,-3,-82,-3,-73,-3,-72,-3,-62,-3,-61,-3,-49,-3,-48,-3,-38,-3,-32,-3,-27,-3,-16,-3,-12,-3,-1,-3,6,-2,12,-2,25,-2,28,-2,42,-2,49,-2,58,-2,69,-2,77,-2,88,-2,98,-2,107,-2,120,-2,-127,-2,-116,-2,-106,-2,-97,-2,-83,-2,-73,-2,-61,-2,-50,-2,-37,-2,-27,-2,-12,-2,-4,-2,12,-1,23,-1,35,-1,49,-1,59,-1,74,-1,86,-1,99,-1,112,-1,125,-1,-119,-1,-104,-1,-93,-1,-78,-1,-67,-1,-51,-1,-41,-1,-25,-1,-14,-1,-1,-1,10,0,26,0,36,0,52,0,62,0,78,0,89,0,102,0,117,0,126,0,-114,0,-103,0,-90,0,-78,0,-65,0,-53,0,-41,0,-29,0,-18,0,-4,0,6,1,19,1,29,1,38,1,56,1,59,1,76,1,84,1,93,1,105,1,113,1,123,1,-122,1,-114,1,-103,1,-95,1,-85,1,-78,1,-67,1,-61,1,-50,1,-46,1,-35,1,-29,1,-21,1,-15,1,-7,1,-2,1,5,2,12,2,17,2,22,2,29,2,31,2,39,2,42,2,46,2,52,2,52,2,58,2,60,2,64,2,65,2,71,2,67,2,77,2,70,2,79,2,74,2,80,2,77,2,78,2,79,2,77,2,78,2,77,2,76,2,73,2,73,2,71,2,67,2,69,2,60,2,63,2,56,2,53,2,52,2,44,2,44,2,36,2,34,2,29,2,22,2,19,2,9,2,9,2,-3,1,-4,1,-14,1,-21,1,-26,1,-34,1,-44,1,-46,1,-61,1,-63,1,-74,1,-83,1,-90,1,-101,1,-107,1,-120,1,-126,1,119,1,108,1,102,1,87,1,82,1,70,1,59,1,51,1,37,1,29,1,16,1,6,1,-6,0,-16,0,-29,0,-39,0,-51,0,-63,0,-76,0,-83,0,-102,0,-107,0,-124,0,122,0,111,0,96,0,86,0,74,0,60,0,50,0,36,0,23,0,16,0,-4,-1,-4,-1,-28,-1,-31,-1,-50,-1,-57,-1,-73,-1,-80,-1,-98,-1,-105,-1,-120,-1,125,-1,114,-1,102,-1,91,-1,79,-1,67,-1,55,-1,47,-1,32,-1,26,-1,10,-1,3,-1,-10,-2,-19,-2,-31,-2,-38,-2,-52,-2,-57,-2,-73,-2,-74,-2,-92,-2,-92,-2,-108,-2,-113,-2,-124,-2,124,-2,117,-2,107,-2,100,-2,93,-2}; }
	private static byte[] data13(){ return new byte[] {82,-2,81,-2,67,-2,64,-2,57,-2,49,-2,45,-2,36,-2,33,-2,25,-2,22,-2,14,-2,13,-2,3,-2,4,-2,-4,-3,-7,-3,-9,-3,-15,-3,-15,-3,-21,-3,-21,-3,-27,-3,-25,-3,-31,-3,-29,-3,-34,-3,-33,-3,-36,-3,-34,-3,-37,-3,-35,-3,-37,-3,-36,-3,-35,-3,-35,-3,-33,-3,-34,-3,-28,-3,-33,-3,-23,-3,-29,-3,-19,-3,-22,-3,-15,-3,-15,-3,-9,-3,-7,-3,-2,-3,1,-2,5,-2,11,-2,15,-2,20,-2,25,-2,32,-2,35,-2,44,-2,48,-2,55,-2,62,-2,68,-2,75,-2,83,-2,90,-2,96,-2,107,-2,111,-2,122,-2,-127,-2,-119,-2,-110,-2,-100,-2,-94,-2,-82,-2,-74,-2,-66,-2,-55,-2,-49,-2,-36,-2,-28,-2,-17,-2,-9,-2,5,-1,10,-1,27,-1,30,-1,47,-1,54,-1,66,-1,76,-1,89,-1,97,-1,111,-1,119,-1,-124,-1,-113,-1,-101,-1,-91,-1,-80,-1,-67,-1,-59,-1,-42,-1,-37,-1,-21,-1,-12,-1,-1,-1,9,0,22,0,31,0,45,0,54,0,67,0,76,0,90,0,97,0,114,0,118,0,-122,0,-113,0,-104,0,-89,0,-83,0,-69,0,-61,0,-50,0,-40,0,-28,0,-22,0,-7,0,-4,0,14,1,14,1,33,1,33,1,49,1,53,1,62,1,73,1,78,1,89,1,96,1,103,1,113,1,118,1,-128,1,-123,1,-114,1,-109,1,-102,1,-94,1,-91,1,-80,1,-80,1,-69,1,-68,1,-60,1,-54,1,-54,1,-44,1,-44,1,-36,1,-35,1,-30,1,-27,1,-24,1,-21,1,-18,1,-17,1,-12,1,-12,1,-8,1,-10,1,-5,1,-6,1,-4,1,-3,1,-4,1,-2,1,-4,1,-3,1,-3,1,-5,1,-4,1,-8,1,-6,1,-12,1,-8,1,-16,1,-14,1,-20,1,-19,1,-26,1,-26,1,-31,1,-34,1,-39,1,-39,1,-49,1,-48,1,-57,1,-60,1,-64,1,-71,1,-76,1,-81,1,-90,1,-90,1,-104,1,-102,1,-117,1,-117,1,127,1,123,1,115,1,107,1,99,1,93,1,82,1,78,1,66,1,59,1,52,1,40,1,37,1,23,1,18,1,6,1,0,1,-13,0,-19,0,-32,0,-39,0,-50,0,-60,0,-68,0,-82,0,-85,0,-106,0,-102,0,-128,0,-123,0,111,0,107,0,94,0,85,0,72,0,66,0,50,0,44,0,31,0,21,0,11,0,1,0,-9,-1,-20,-1,-29,-1,-42,-1,-49,-1,-63,-1,-71,-1,-83,-1,-92,-1,-103,-1,-112,-1,-122,-1,121,-1,116,-1,99,-1,98,-1,80,-1,78,-1,61,-1,58,-1,44,-1,36,-1,30,-1,15,-1,12,-1,0,-1,-9,-2,-14,-2,-27,-2,-30,-2,-42,-2,-46,-2,-57,-2,-63,-2,-70,-2,-81,-2,-83,-2,-94,-2,-99,-2,-106,-2,-113,-2,-119,-2,-126,-2,127,-2,116,-2,117,-2,105,-2,104,-2,98,-2,91,-2,92,-2,80,-2,82,-2,74,-2,73,-2,68,-2,65,-2,60,-2,61,-2,53,-2,57,-2,48,-2,52,-2,44,-2,47,-2,43,-2,41,-2,45,-2,36,-2,43,-2,38,-2,39,-2,40,-2,39,-2,39,-2,42,-2,40,-2,43,-2,45,-2,43,-2,49,-2,48,-2,51,-2,55,-2,54,-2,60,-2,62,-2,64,-2,69,-2,71,-2,75,-2,80,-2,82,-2,90,-2,90,-2,100,-2,99,-2,109,-2,111,-2,120,-2,121,-2,-124,-2,-123,-2,-114,-2,-107,-2,-103,-2,-94,-2,-90,-2,-79,-2,-77,-2,-64,-2,-61,-2,-53,-2,-42,-2,-39,-2,-27,-2,-21,-2,-14,-2,-5,-2,2,-1,12,-1,21,-1,26,-1,42,-1,40,-1,62,-1,59,-1,77,-1,81,-1,93,-1,101,-1,111,-1,118,-1,-122,-1,-122,-1,-102,-1,-102,-1,-85,-1,-80,-1,-67,-1,-60,-1,-48,-1,-40,-1,-29,-1,-19,-1,-10,-1,-2,-1,9,0,17,0,30,0,35,0,49,0,56,0,68,0,75,0,86,0,95,0,105,0,114,0,124,0,-125,0,-113,0,-105,0,-97,0,-85,0,-80,0,-70,0,-59,0,-53,0,-44,0,-33,0,-31,0,-16,0,-13,0,-1,0,3,1,13,1,17,1,27,1,34,1,39,1,50,1,52,1,64,1,65,1,76,1,79,1,87,1,93,1,96,1,106,1,107,1,116,1,118,1,124,1,-127,1,-123,1,-118,1,-114,1,-112,1,-104,1,-107,1,-95,1,-101,1,-90,1,-94,1,-87,1,-86,1,-85,1,-81,1,-82,1,-77,1,-77,1,-77,1,-74,1,-75,1,-73,1,-73,1,-72,1,-75,1,-71,1,-75,1,-72,1,-77,1,-74,1,-80,1,-76,1,-81,1,-82,1,-84,1,-86,1,-90,1,-89,1,-96,1,-94,1,-103,1,-101,1,-107,1,-111,1,-112,1,-119,1,-123,1,-125,1,123,1,121,1,116,1,108,1,107,1,98,1,95,1,88,1,80,1,80,1,66,1,67,1,57,1,48,1,47,1}; }
	private static byte[] data14(){ return new byte[] {35,1,31,1,23,1,16,1,8,1,0,1,-3,0,-17,0,-18,0,-29,0,-39,0,-42,0,-56,0,-59,0,-71,0,-77,0,-87,0,-95,0,-103,0,-113,0,-121,0,127,0,116,0,111,0,96,0,94,0,79,0,74,0,64,0,53,0,47,0,36,0,26,0,20,0,8,0,2,0,-8,-1,-17,-1,-26,-1,-35,-1,-43,-1,-54,-1,-61,-1,-71,-1,-81,-1,-86,-1,-99,-1,-106,-1,-113,-1,-125,-1,126,-1,115,-1,107,-1,99,-1,93,-1,80,-1,78,-1,63,-1,61,-1,51,-1,42,-1,39,-1,25,-1,23,-1,13,-1,8,-1,1,-1,-6,-2,-13,-2,-20,-2,-25,-2,-34,-2,-36,-2,-47,-2,-49,-2,-57,-2,-63,-2,-65,-2,-76,-2,-75,-2,-85,-2,-86,-2,-94,-2,-96,-2,-102,-2,-105,-2,-108,-2,-116,-2,-115,-2,-121,-2,-124,-2,-126,-2,125,-2,124,-2,122,-2,117,-2,118,-2,113,-2,114,-2,111,-2,108,-2,109,-2,107,-2,106,-2,105,-2,106,-2,102,-2,107,-2,102,-2,105,-2,105,-2,106,-2,104,-2,110,-2,105,-2,112,-2,109,-2,113,-2,116,-2,114,-2,122,-2,118,-2,125,-2,127,-2,-128,-2,-122,-2,-123,-2,-115,-2,-115,-2,-110,-2,-104,-2,-105,-2,-94,-2,-96,-2,-87,-2,-85,-2,-78,-2,-75,-2,-69,-2,-62,-2,-61,-2,-49,-2,-50,-2,-39,-2,-35,-2,-31,-2,-19,-2,-20,-2,-6,-2,-6,-2,5,-1,10,-1,17,-1,24,-1,31,-1,37,-1,46,-1,51,-1,61,-1,67,-1,77,-1,80,-1,94,-1,95,-1,110,-1,112,-1,124,-1,-125,-1,-120,-1,-105,-1,-105,-1,-88,-1,-88,-1,-73,-1,-70,-1,-57,-1,-52,-1,-41,-1,-35,-1,-24,-1,-18,-1,-8,-1,-1,-1,7,0,16,0,24,0,32,0,41,0,50,0,56,0,68,0,71,0,85,0,88,0,101,0,104,0,116,0,122,0,-127,0,-116,0,-113,0,-100,0,-97,0,-86,0,-83,0,-70,0,-68,0,-56,0,-54,0,-43,0,-39,0,-30,0,-26,0,-19,0,-12,0,-7,0,0,1,6,1,12,1,17,1,24,1,28,1,34,1,40,1,43,1,52,1,51,1,62,1,59,1,72,1,68,1,79,1,78,1,83,1,89,1,88,1,96,1,95,1,99,1,105,1,101,1,111,1,106,1,112,1,115,1,111,1,121,1,113,1,124,1,116,1,124,1,119,1,125,1,120,1,125,1,121,1,123,1,123,1,121,1,121,1,121,1,117,1,121,1,114,1,115,1,115,1,109,1,112,1,105,1,104,1,105,1,96,1,100,1,92,1,91,1,87,1,84,1,80,1,77,1,72,1,67,1,66,1,58,1,57,1,49,1,46,1,41,1,35,1,32,1,24,1,20,1,15,1,6,1,6,1,-6,0,-7,0,-17,0,-20,0,-30,0,-32,0,-42,0,-45,0,-55,0,-58,0,-70,0,-71,0,-82,0,-89,0,-94,0,-105,0,-107,0,-119,0,-124,0,124,0,115,0,112,0,97,0,98,0,81,0,82,0,70,0,61,0,58,0,43,0,43,0,29,0,25,0,15,0,8,0,1,0,-7,-1,-14,-1,-24,-1,-27,-1,-42,-1,-42,-1,-56,-1,-59,-1,-70,-1,-76,-1,-84,-1,-91,-1,-99,-1,-106,-1,-115,-1,-119,-1,126,-1,122,-1,113,-1,106,-1,101,-1,91,-1,88,-1,77,-1,74,-1,66,-1,60,-1,52,-1,50,-1,38,-1,40,-1,26,-1,28,-1,14,-1,18,-1,2,-1,6,-1,-5,-2,-10,-2,-10,-2,-22,-2,-19,-2,-30,-2,-31,-2,-37,-2,-40,-2,-45,-2,-47,-2,-54,-2,-54,-2,-62,-2,-59,-2,-68,-2,-68,-2,-71,-2,-76,-2,-74,-2,-81,-2,-81,-2,-82,-2,-87,-2,-84,-2,-92,-2,-86,-2,-95,-2,-89,-2,-97,-2,-90,-2,-98,-2,-94,-2,-95,-2,-98,-2,-92,-2,-99,-2,-94,-2,-95,-2,-94,-2,-94,-2,-91,-2,-93,-2,-88,-2,-90,-2,-86,-2,-86,-2,-81,-2,-84,-2,-77,-2,-77,-2,-75,-2,-70,-2,-70,-2,-67,-2,-60,-2,-63,-2,-53,-2,-55,-2,-47,-2,-47,-2,-39,-2,-40,-2,-30,-2,-32,-2,-20,-2,-23,-2,-13,-2,-11,-2,-5,-2,-1,-2,7,-1,8,-1,18,-1,20,-1,27,-1,33,-1,37,-1,46,-1,49,-1,56,-1,61,-1,69,-1,72,-1,83,-1,85,-1,94,-1,101,-1,104,-1,117,-1,117,-1,-127,-1,-123,-1,-114,-1,-109,-1,-101,-1,-94,-1,-87,-1,-79,-1,-73,-1,-65,-1,-59,-1,-50,-1,-44,-1,-37,-1,-28,-1,-23,-1,-13,-1,-9,-1,1,0,4,0,15,0,21,0,27,0,36,0,43,0,48,0,58,0,63,0,72,0,76,0,88,0,87,0,104,0,101,0,116,0,116,0,-128,0,-126,0,-115,0,-113,0,-103,0,-98,0,-93,0,-84,0,-82,0,-73,0,-66,0,-65,0,-53,0,-57,0,-42,0,-42,0,-35,0,-29,0}; }
	private static byte[] data15(){ return new byte[] {-28,0,-16,0,-20,0,-5,0,-11,0,3,1,0,1,9,1,10,1,16,1,20,1,22,1,27,1,31,1,32,1,38,1,39,1,43,1,46,1,48,1,50,1,54,1,55,1,56,1,61,1,59,1,63,1,65,1,63,1,69,1,66,1,69,1,69,1,69,1,72,1,68,1,74,1,67,1,73,1,68,1,72,1,68,1,68,1,69,1,64,1,68,1,62,1,63,1,61,1,59,1,57,1,55,1,53,1,50,1,49,1,46,1,41,1,43,1,34,1,36,1,30,1,26,1,25,1,20,1,15,1,15,1,6,1,4,1,2,1,-8,0,-5,0,-16,0,-17,0,-24,0,-27,0,-34,0,-38,0,-41,0,-51,0,-53,0,-59,0,-66,0,-69,0,-74,0,-85,0,-83,0,-96,0,-97,0,-106,0,-111,0,-117,0,-124,0,127,0,119,0,113,0,108,0,99,0,95,0,87,0,80,0,76,0,65,0,62,0,54,0,46,0,43,0,31,0,29,0,19,0,15,0,5,0,2,0,-6,-1,-13,-1,-18,-1,-27,-1,-32,-1,-41,-1,-44,-1,-54,-1,-58,-1,-67,-1,-72,-1,-79,-1,-84,-1,-94,-1,-95,-1,-108,-1,-107,-1,-118,-1,-124,-1,-127,-1,120,-1,115,-1,111,-1,101,-1,100,-1,91,-1,88,-1,80,-1,77,-1,70,-1,67,-1,60,-1,58,-1,48,-1,50,-1,38,-1,38,-1,34,-1,24,-1,29,-1,14,-1,20,-1,8,-1,10,-1,2,-1,1,-1,-3,-2,-6,-2,-11,-2,-12,-2,-17,-2,-17,-2,-23,-2,-23,-2,-27,-2,-29,-2,-29,-2,-36,-2,-33,-2,-37,-2,-38,-2,-39,-2,-42,-2,-42,-2,-43,-2,-46,-2,-43,-2,-49,-2,-43,-2,-51,-2,-43,-2,-51,-2,-45,-2,-48,-2,-48,-2,-44,-2,-49,-2,-42,-2,-47,-2,-42,-2,-43,-2,-41,-2,-39,-2,-39,-2,-36,-2,-35,-2,-33,-2,-31,-2,-27,-2,-30,-2,-20,-2,-25,-2,-18,-2,-15,-2,-15,-2,-8,-2,-8,-2,-5,-2,1,-1,2,-1,9,-1,9,-1,14,-1,19,-1,21,-1,29,-1,28,-1,38,-1,36,-1,47,-1,48,-1,53,-1,60,-1,60,-1,71,-1,72,-1,80,-1,82,-1,88,-1,94,-1,99,-1,105,-1,110,-1,116,-1,121,-1,127,-1,-121,-1,-121,-1,-106,-1,-110,-1,-96,-1,-95,-1,-87,-1,-81,-1,-74,-1,-71,-1,-60,-1,-59,-1,-48,-1,-45,-1,-38,-1,-31,-1,-26,-1,-18,-1,-13,-1,-5,-1,-3,-1,8,0,8,0,21,0,23,0,31,0,37,0,41,0,50,0,56,0,59,0,70,0,70,0,81,0,86,0,88,0,100,0,100,0,110,0,114,0,118,0,127,0,-126,0,-120,0,-113,0,-112,0,-101,0,-100,0,-94,0,-88,0,-86,0,-76,0,-79,0,-67,0,-68,0,-61,0,-55,0,-55,0,-46,0,-45,0,-41,0,-35,0,-35,0,-26,0,-28,0,-20,0,-19,0,-16,0,-11,0,-11,0,-4,0,-7,0,4,1,-4,0,9,1,4,1,8,1,12,1,11,1,15,1,16,1,16,1,20,1,19,1,21,1,23,1,22,1,25,1,24,1,24,1,27,1,24,1,27,1,25,1,26,1,25,1,25,1,25,1,22,1,26,1,19,1,23,1,20,1,16,1,21,1,12,1,17,1,11,1,9,1,11,1,4,1,6,1,2,1,-2,0,-1,0,-9,0,-6,0,-14,0,-12,0,-20,0,-21,0,-24,0,-28,0,-32,0,-34,0,-41,0,-41,0,-48,0,-51,0,-54,0,-60,0,-63,0,-69,0,-72,0,-76,0,-84,0,-83,0,-95,0,-92,0,-101,0,-107,0,-107,0,-119,0,-118,0,-127,0,125,0,121,0,112,0,111,0,101,0,100,0,90,0,89,0,79,0,76,0,70,0,63,0,60,0,49,0,50,0,38,0,37,0,28,0,24,0,16,0,15,0,2,0,4,0,-7,-1,-11,-1,-14,-1,-25,-1,-27,-1,-34,-1,-40,-1,-45,-1,-51,-1,-58,-1,-60,-1,-70,-1,-73,-1,-78,-1,-87,-1,-87,-1,-98,-1,-98,-1,-109,-1,-107,-1,-121,-1,-118,-1,-128,-1,125,-1,120,-1,114,-1,110,-1,106,-1,100,-1,97,-1,92,-1,88,-1,83,-1,80,-1,74,-1,72,-1,66,-1,65,-1,57,-1,57,-1,51,-1,49,-1,46,-1,40,-1,39,-1,36,-1,32,-1,30,-1,26,-1,24,-1,22,-1,20,-1,15,-1,16,-1,11,-1,12,-1,6,-1,9,-1,4,-1,5,-1,1,-1,1,-1,0,-1,-1,-2,-3,-2,-3,-2,-4,-2,-3,-2,-7,-2,-4,-2,-6,-2,-6,-2,-4,-2,-8,-2,-2,-2,-8,-2,-2,-2,-6,-2,-1,-2,-4,-2,0,-1,-2,-2,3,-1,0,-1,6,-1,3,-1,8,-1,8,-1,12,-1,10,-1,16,-1,16,-1,19,-1,22,-1,23,-1,27,-1,28,-1,34,-1,33,-1,39,-1,41,-1,43,-1,50,-1,49,-1,55,-1,58,-1}; }
	private static byte[] data16(){ return new byte[] {61,-1,68,-1,67,-1,74,-1,78,-1,80,-1,88,-1,86,-1,98,-1,96,-1,105,-1,105,-1,112,-1,116,-1,121,-1,125,-1,-125,-1,-123,-1,-113,-1,-114,-1,-103,-1,-103,-1,-96,-1,-90,-1,-87,-1,-77,-1,-80,-1,-65,-1,-69,-1,-57,-1,-55,-1,-48,-1,-44,-1,-37,-1,-34,-1,-26,-1,-22,-1,-16,-1,-11,-1,-6,-1,1,0,2,0,13,0,13,0,22,0,26,0,31,0,38,0,41,0,48,0,52,0,59,0,62,0,69,0,73,0,79,0,82,0,91,0,91,0,100,0,103,0,107,0,114,0,117,0,122,0,127,0,-125,0,-120,0,-117,0,-110,0,-110,0,-103,0,-99,0,-97,0,-91,0,-88,0,-85,0,-79,0,-79,0,-71,0,-73,0,-63,0,-67,0,-56,0,-61,0,-51,0,-54,0,-47,0,-44,0,-46,0,-39,0,-39,0,-36,0,-32,0,-34,0,-29,0,-27,0,-28,0,-22,0,-25,0,-21,0,-20,0,-20,0,-17,0,-18,0,-15,0,-16,0,-15,0,-13,0,-16,0,-10,0,-17,0,-9,0,-17,0,-10,0,-15,0,-14,0,-12,0,-18,0,-12,0,-19,0,-14,0,-22,0,-15,0,-25,0,-17,0,-27,0,-22,0,-28,0,-27,0,-30,0,-31,0,-35,0,-33,0,-41,0,-38,0,-45,0,-43,0,-50,0,-49,0,-55,0,-55,0,-61,0,-61,0,-67,0,-68,0,-72,0,-77,0,-77,0,-85,0,-84,0,-91,0,-95,0,-96,0,-102,0,-107,0,-106,0,-119,0,-113,0,-125,0,-123,0,123,0,124,0,114,0,115,0,105,0,105,0,98,0,93,0,92,0,79,0,85,0,70,0,74,0,62,0,61,0,54,0,52,0,44,0,41,0,35,0,29,0,27,0,19,0,15,0,12,0,2,0,3,0,-6,-1,-8,-1,-15,-1,-19,-1,-25,-1,-29,-1,-34,-1,-39,-1,-45,-1,-47,-1,-56,-1,-57,-1,-64,-1,-69,-1,-71,-1,-79,-1,-82,-1,-86,-1,-93,-1,-93,-1,-103,-1,-103,-1,-110,-1,-113,-1,-117,-1,-123,-1,-124,-1,123,-1,125,-1,116,-1,117,-1,110,-1,107,-1,104,-1,99,-1,98,-1,91,-1,92,-1,84,-1,85,-1,79,-1,78,-1,73,-1,72,-1,67,-1,68,-1,62,-1,61,-1,58,-1,56,-1,54,-1,52,-1,49,-1,47,-1,48,-1,41,-1,46,-1,39,-1,39,-1,41,-1,34,-1,39,-1,34,-1,33,-1,35,-1,31,-1,33,-1,30,-1,33,-1,29,-1,31,-1,30,-1,30,-1,31,-1,31,-1,29,-1,34,-1,30,-1,34,-1,32,-1,35,-1,33,-1,39,-1,34,-1,42,-1,36,-1,44,-1,41,-1,45,-1,45,-1,49,-1,48,-1,52,-1,54,-1,54,-1,61,-1,57,-1,65,-1,63,-1,70,-1,70,-1,73,-1,76,-1,79,-1,83,-1,85,-1,89,-1,90,-1,97,-1,97,-1,103,-1,105,-1,108,-1,114,-1,115,-1,121,-1,124,-1,127,-1,-124,-1,-122,-1,-116,-1,-112,-1,-110,-1,-102,-1,-102,-1,-95,-1,-91,-1,-88,-1,-82,-1,-79,-1,-73,-1,-71,-1,-63,-1,-62,-1,-53,-1,-55,-1,-43,-1,-46,-1,-33,-1,-36,-1,-25,-1,-27,-1,-15,-1,-17,-1,-7,-1,-7,-1,1,0,3,0,10,0,12,0,19,0,21,0,29,0,30,0,38,0,40,0,46,0,50,0,53,0,61,0,61,0,70,0,71,0,76,0,81,0,85,0,89,0,94,0,96,0,101,0,106,0,110,0,113,0,116,0,121,0,124,0,-127,0,-126,0,-121,0,-118,0,-114,0,-111,0,-109,0,-103,0,-104,0,-95,0,-99,0,-89,0,-94,0,-83,0,-87,0,-81,0,-79,0,-78,0,-74,0,-71,0,-74,0,-63,0,-72,0,-59,0,-67,0,-57,0,-62,0,-56,0,-57,0,-55,0,-53,0,-54,0,-51,0,-51,0,-50,0,-48,0,-50,0,-46,0,-50,0,-45,0,-48,0,-45,0,-47,0,-48,0,-44,0,-50,0,-43,0,-50,0,-48,0,-46,0,-53,0,-46,0,-53,0,-52,0,-50,0,-58,0,-51,0,-59,0,-58,0,-57,0,-64,0,-59,0,-67,0,-64,0,-70,0,-68,0,-73,0,-75,0,-75,0,-80,0,-81,0,-83,0,-88,0,-88,0,-91,0,-97,0,-94,0,-105,0,-99,0,-110,0,-107,0,-114,0,-117,0,-118,0,-125,0,-123,0,122,0,126,0,118,0,116,0,112,0,109,0,104,0,101,0,97,0,92,0,91,0,83,0,82,0,76,0,74,0,67,0,66,0,59,0,56,0,53,0,47,0,42,0,41,0,32,0,32,0,27,0,20,0,18,0,13,0,8,0,6,0,-1,-1,-2,-1,-10,-1,-11,-1,-17,-1,-21,-1,-25,-1,-30,-1,-33,-1,-39,-1,-41,-1,-47,-1,-51,-1,-54,-1,-59,-1,-63,-1,-66,-1,-72,-1,-75,-1,-78,-1,-84,-1,-85,-1,-91,-1,-95,-1,-97,-1,-101,-1,-107,-1,-106,-1,-114,-1,-115,-1,-118,-1}; }
	private static byte[] data17(){ return new byte[] {-123,-1,-124,-1,127,-1,126,-1,118,-1,123,-1,110,-1,118,-1,105,-1,110,-1,102,-1,104,-1,97,-1,99,-1,91,-1,95,-1,87,-1,90,-1,85,-1,82,-1,83,-1,79,-1,77,-1,80,-1,70,-1,78,-1,67,-1,74,-1,68,-1,69,-1,68,-1,65,-1,65,-1,66,-1,63,-1,63,-1,65,-1,59,-1,64,-1,61,-1,61,-1,63,-1,60,-1,61,-1,63,-1,61,-1,63,-1,62,-1,64,-1,62,-1,67,-1,64,-1,67,-1,67,-1,69,-1,67,-1,75,-1,67,-1,78,-1,71,-1,78,-1,78,-1,79,-1,82,-1,83,-1,85,-1,88,-1,88,-1,93,-1,93,-1,97,-1,97,-1,103,-1,101,-1,109,-1,106,-1,114,-1,111,-1,122,-1,115,-1,127,-1,124,-1,-127,-1,-122,-1,-122,-1,-117,-1,-113,-1,-112,-1,-107,-1,-104,-1,-102,-1,-95,-1,-96,-1,-88,-1,-87,-1,-83,-1,-77,-1,-78,-1,-68,-1,-71,-1,-61,-1,-61,-1,-56,-1,-51,-1,-49,-1,-44,-1,-40,-1,-37,-1,-32,-1,-26,-1,-27,-1,-18,-1,-18,-1,-11,-1,-8,-1,-4,-1,-1,-1,4,0,7,0,12,0,15,0,20,0,22,0,30,0,28,0,39,0,36,0,45,0,46,0,51,0,55,0,58,0,62,0,66,0,69,0,75,0,74,0,84,0,79,0,92,0,88,0,96,0,96,0,102,0,103,0,109,0,108,0,116,0,113,0,122,0,120,0,126,0,-128,0,-126,0,-123,0,-119,0,-119,0,-113,0,-116,0,-107,0,-110,0,-105,0,-103,0,-103,0,-98,0,-98,0,-96,0,-94,0,-92,0,-92,0,-87,0,-89,0,-86,0,-85,0,-85,0,-81,0,-83,0,-80,0,-80,0,-79,0,-78,0,-78,0,-77,0,-77,0,-75,0,-77,0,-74,0,-77,0,-74,0,-77,0,-73,0,-78,0,-73,0,-79,0,-74,0,-79,0,-75,0,-81,0,-77,0,-81,0,-80,0,-82,0,-83,0,-84,0,-85,0,-86,0,-88,0,-89,0,-91,0,-92,0,-93,0,-98,0,-94,0,-102,0,-100,0,-103,0,-106,0,-108,0,-108,0,-114,0,-113,0,-117,0,-121,0,-120,0,-125,0,-127,0,126,0,123,0,121,0,118,0,115,0,111,0,109,0,107,0,101,0,102,0,95,0,95,0,89,0,88,0,82,0,82,0,76,0,73,0,70,0,66,0,63,0,59,0,55,0,53,0,48,0,44,0,42,0,36,0,35,0,29,0,27,0,21,0,21,0,13,0,12,0,8,0,3,0,0,0,-1,-1,-11,-1,-6,-1,-18,-1,-16,-1,-23,-1,-25,-1,-30,-1,-32,-1,-36,-1,-41,-1,-43,-1,-48,-1,-50,-1,-54,-1,-58,-1,-62,-1,-63,-1,-70,-1,-69,-1,-76,-1,-79,-1,-79,-1,-86,-1,-86,-1,-92,-1,-93,-1,-97,-1,-100,-1,-101,-1,-107,-1,-106,-1,-112,-1,-112,-1,-118,-1,-117,-1,-122,-1,-124,-1,-125,-1,125,-1,-127,-1,118,-1,126,-1,113,-1,122,-1,109,-1,117,-1,108,-1,110,-1,108,-1,104,-1,105,-1,102,-1,102,-1,98,-1,100,-1,97,-1,94,-1,99,-1,90,-1,96,-1,90,-1,93,-1,91,-1,90,-1,90,-1,88,-1,91,-1,86,-1,92,-1,84,-1,92,-1,85,-1,90,-1,88,-1,89,-1,88,-1,90,-1,90,-1,89,-1,93,-1,89,-1,94,-1,94,-1,92,-1,97,-1,94,-1,100,-1,96,-1,101,-1,101,-1,101,-1,105,-1,105,-1,107,-1,110,-1,109,-1,112,-1,116,-1,114,-1,120,-1,118,-1,124,-1,124,-1,127,-1,-128,-1,-124,-1,-122,-1,-120,-1,-117,-1,-115,-1,-112,-1,-109,-1,-107,-1,-104,-1,-100,-1,-100,-1,-94,-1,-93,-1,-91,-1,-86,-1,-84,-1,-81,-1,-77,-1,-73,-1,-75,-1,-64,-1,-68,-1,-60,-1,-58,-1,-55,-1,-52,-1,-47,-1,-47,-1,-39,-1,-41,-1,-31,-1,-35,-1,-25,-1,-26,-1,-20,-1,-17,-1,-14,-1,-11,-1,-7,-1,-4,-1,1,0,2,0,7,0,10,0,12,0,18,0,19,0,25,0,26,0,31,0,34,0,36,0,42,0,43,0,46,0,53,0,51,0,58,0,60,0,63,0,66,0,70,0,72,0,74,0,81,0,79,0,85,0,88,0,87,0,96,0,92,0,99,0,100,0,103,0,105,0,109,0,108,0,115,0,113,0,119,0,118,0,123,0,122,0,127,0,127,0,-126,0,-125,0,-122,0,-123,0,-117,0,-120,0,-115,0,-115,0,-114,0,-111,0,-112,0,-110,0,-107,0,-109,0,-105,0,-106,0,-106,0,-103,0,-104,0,-102,0,-102,0,-101,0,-103,0,-99,0,-102,0,-99,0,-101,0,-99,0,-102,0,-99,0,-100,0,-102,0,-99,0,-103,0,-101,0,-102,0,-102,0,-105,0,-102,0,-107,0,-104,0,-107,0,-108,0,-107,0,-112,0,-109,0,-113,0,-113,0,-113,0,-120,0,-114,0,-122,0,-119,0,-123,0,-124,0,-127,0,-127,0}; }
	private static byte[] data18(){ return new byte[] {126,0,123,0,125,0,117,0,120,0,115,0,113,0,112,0,108,0,107,0,104,0,102,0,97,0,99,0,92,0,92,0,89,0,85,0,85,0,80,0,78,0,75,0,71,0,71,0,64,0,65,0,59,0,59,0,52,0,53,0,45,0,47,0,41,0,39,0,35,0,33,0,27,0,28,0,20,0,22,0,14,0,15,0,7,0,10,0,0,0,2,0,-3,-1,-7,-1,-7,-1,-14,-1,-16,-1,-16,-1,-26,-1,-22,-1,-30,-1,-31,-1,-33,-1,-40,-1,-39,-1,-45,-1,-46,-1,-49,-1,-54,-1,-55,-1,-59,-1,-61,-1,-65,-1,-66,-1,-71,-1,-73,-1,-74,-1,-81,-1,-78,-1,-85,-1,-86,-1,-87,-1,-93,-1,-91,-1,-96,-1,-98,-1,-99,-1,-105,-1,-101,-1,-111,-1,-104,-1,-116,-1,-109,-1,-116,-1,-117,-1,-119,-1,-120,-1,-123,-1,-122,-1,-126,-1,-127,-1,-128,-1,126,-1,125,-1,123,-1,124,-1,119,-1,123,-1,116,-1,121,-1,115,-1,117,-1,116,-1,114,-1,116,-1,111,-1,115,-1,111,-1,114,-1,110,-1,113,-1,110,-1,112,-1,112,-1,109,-1,114,-1,108,-1,115,-1,110,-1,114,-1,110,-1,116,-1,110,-1,118,-1,113,-1,116,-1,117,-1,115,-1,120,-1,119,-1,119,-1,124,-1,118,-1,127,-1,122,-1,-127,-1,125,-1,-125,-1,-128,-1,-122,-1,-123,-1,-121,-1,-118,-1,-118,-1,-115,-1,-114,-1,-110,-1,-112,-1,-104,-1,-109,-1,-101,-1,-102,-1,-98,-1,-98,-1,-93,-1,-93,-1,-88,-1,-89,-1,-83,-1,-85,-1,-77,-1,-80,-1,-73,-1,-74,-1,-68,-1,-69,-1,-62,-1,-64,-1,-56,-1,-58,-1,-51,-1,-52,-1,-48,-1,-42,-1,-45,-1,-35,-1,-39,-1,-31,-1,-31,-1,-26,-1,-24,-1,-22,-1,-17,-1,-16,-1,-11,-1,-9,-1,-7,-1,-1,-1,-3,-1,4,0,5,0,9,0,11,0,16,0,14,0,25,0,19,0,30,0,27,0,32,0,37,0,35,0,43,0,43,0,45,0,50,0,52,0,54,0,57,0,61,0,59,0,70,0,63,0,74,0,68,0,80,0,73,0,84,0,78,0,87,0,84,0,91,0,89,0,94,0,94,0,98,0,99,0,101,0,102,0,106,0,106,0,109,0,111,0,108,0,118,0,110,0,121,0,115,0,120,0,120,0,122,0,123,0,125,0,124,0,127,0,127,0,-128,0,-127,0,-126,0,-127,0,-123,0,-125,0,-125,0,-121,0,-126,0,-120,0,-123,0,-122,0,-122,0,-120,0,-124,0,-119,0,-124,0,-120,0,-123,0,-121,0,-124,0,-121,0,-124,0,-124,0,-124,0,-125,0,-126,0,-125,0,-128,0,-128,0,127,0,126,0,126,0,124,0,123,0,121,0,121,0,119,0,119,0,116,0,115,0,114,0,111,0,112,0,108,0,107,0,106,0,103,0,102,0,100,0,98,0,95,0,96,0,89,0,93,0,85,0,86,0,84,0,79,0,82,0,74,0,75,0,72,0,68,0,70,0,62,0,64,0,58,0,58,0,54,0,53,0,47,0,49,0,42,0,43,0,38,0,36,0,33,0,31,0,27,0,26,0,22,0,20,0,15,0,16,0,9,0,11,0,3,0,5,0,-1,-1,-2,-1,-5,-1,-9,-1,-9,-1,-14,-1,-16,-1,-19,-1,-22,-1,-25,-1,-26,-1,-31,-1,-31,-1,-36,-1,-38,-1,-40,-1,-44,-1,-43,-1,-51,-1,-47,-1,-57,-1,-52,-1,-60,-1,-60,-1,-62,-1,-66,-1,-66,-1,-72,-1,-70,-1,-76,-1,-74,-1,-80,-1,-79,-1,-84,-1,-82,-1,-89,-1,-86,-1,-92,-1,-91,-1,-94,-1,-97,-1,-95,-1,-101,-1,-99,-1,-104,-1,-102,-1,-107,-1,-106,-1,-108,-1,-109,-1,-112,-1,-109,-1,-117,-1,-111,-1,-117,-1,-116,-1,-117,-1,-118,-1,-120,-1,-117,-1,-124,-1,-117,-1,-127,-1,-117,-1,-126,-1,-122,-1,-123,-1,-126,-1,-122,-1,-127,-1,-122,-1,-128,-1,-121,-1,127,-1,-121,-1,-128,-1,-122,-1,-126,-1,-123,-1,-124,-1,-123,-1,-123,-1,-122,-1,-122,-1,-121,-1,-120,-1,-120,-1,-118,-1,-120,-1,-114,-1,-121,-1,-109,-1,-121,-1,-107,-1,-117,-1,-108,-1,-111,-1,-107,-1,-108,-1,-105,-1,-104,-1,-104,-1,-99,-1,-101,-1,-98,-1,-94,-1,-98,-1,-89,-1,-94,-1,-87,-1,-88,-1,-85,-1,-83,-1,-82,-1,-79,-1,-77,-1,-75,-1,-75,-1,-68,-1,-73,-1,-62,-1,-69,-1,-60,-1,-61,-1,-57,-1,-56,-1,-52,-1,-52,-1,-46,-1,-48,-1,-42,-1,-42,-1,-38,-1,-35,-1,-35,-1,-29,-1,-31,-1,-23,-1,-26,-1,-18,-1,-20,-1,-15,-1,-12,-1,-12,-1,-6,-1,-7,-1,0,0,-4,-1,6,0,2,0,9,0,9,0,13,0,14,0,19,0,20,0,22,0,26,0,26,0,32,0,31,0,37,0,36,0,40,0,43,0,44,0,46,0,52,0,48,0,58,0,53,0,59,0,61,0}; }
	private static byte[] data19(){ return new byte[] {62,0,65,0,68,0,67,0,72,0,71,0,76,0,76,0,79,0,80,0,81,0,85,0,85,0,87,0,90,0,88,0,95,0,91,0,97,0,95,0,98,0,99,0,101,0,101,0,103,0,105,0,103,0,108,0,106,0,107,0,112,0,105,0,116,0,106,0,116,0,110,0,113,0,115,0,113,0,115,0,115,0,114,0,118,0,112,0,120,0,111,0,121,0,111,0,121,0,111,0,120,0,112,0,117,0,114,0,115,0,114,0,113,0,114,0,111,0,113,0,111,0,110,0,110,0,108,0,109,0,107,0,107,0,103,0,106,0,102,0,103,0,99,0,101,0,96,0,99,0,93,0,95,0,92,0,91,0,90,0,87,0,86,0,84,0,84,0,80,0,80,0,77,0,75,0,75,0,70,0,72,0,65,0,69,0,62,0,64,0,58,0,60,0,54,0,54,0,52,0,49,0,47,0,45,0,42,0,40,0,39,0,35,0,33,0,33,0,25,0,30,0,22,0,23,0,17,0,19,0,12,0,15,0,8,0,7,0,5,0,3,0,-1,-1,-1,-1,-4,-1,-8,-1,-8,-1,-13,-1,-13,-1,-17,-1,-18,-1,-21,-1,-25,-1,-22,-1,-33,-1,-26,-1,-35,-1,-34,-1,-37,-1,-39,-1,-43,-1,-42,-1,-46,-1,-49,-1,-48,-1,-54,-1,-53,-1,-57,-1,-57,-1,-62,-1,-59,-1,-67,-1,-63,-1,-69,-1,-70,-1,-69,-1,-75,-1,-72,-1,-78,-1,-77,-1,-79,-1,-83,-1,-80,-1,-86,-1,-83,-1,-89,-1,-87,-1,-91,-1,-89,-1,-93,-1,-92,-1,-97,-1,-92,-1,-100,-1,-95,-1,-99,-1,-101,-1,-98,-1,-102,-1,-103,-1,-100,-1,-106,-1,-101,-1,-106,-1,-106,-1,-103,-1,-108,-1,-105,-1,-106,-1,-110,-1,-104,-1,-109,-1,-108,-1,-106,-1,-109,-1,-108,-1,-106,-1,-110,-1,-105,-1,-109,-1,-106,-1,-107,-1,-106,-1,-107,-1,-104,-1,-107,-1,-102,-1,-106,-1,-101,-1,-105,-1,-100,-1,-103,-1,-98,-1,-101,-1,-98,-1,-98,-1,-97,-1,-94,-1,-96,-1,-92,-1,-94,-1,-90,-1,-90,-1,-87,-1,-90,-1,-82,-1,-90,-1,-77,-1,-86,-1,-77,-1,-81,-1,-74,-1,-79,-1,-70,-1,-74,-1,-70,-1,-67,-1,-69,-1,-63,-1,-63,-1,-63,-1,-58,-1,-58,-1,-56,-1,-53,-1,-53,-1,-50,-1,-45,-1,-49,-1,-41,-1,-44,-1,-37,-1,-39,-1,-34,-1,-35,-1,-29,-1,-29,-1,-27,-1,-24,-1,-23,-1,-20,-1,-17,-1,-16,-1,-13,-1,-11,-1,-10,-1,-5,-1,-7,-1,2,0,-5,-1,5,0,3,0,6,0,11,0,7,0,16,0,13,0,19,0,19,0,21,0,25,0,25,0,29,0,30,0,31,0,37,0,33,0,42,0,38,0,44,0,43,0,48,0,47,0,51,0,52,0,54,0,56,0,57,0,60,0,61,0,62,0,65,0,65,0,68,0,70,0,69,0,74,0,72,0,77,0,74,0,81,0,77,0,82,0,81,0,84,0,84,0,85,0,87,0,87,0,90,0,89,0,90,0,92,0,92,0,94,0,92,0,97,0,93,0,98,0,94,0,100,0,94,0,102,0,94,0,102,0,97,0,101,0,99,0,99,0,101,0,98,0,102,0,99,0,100,0,100,0,99,0,101,0,97,0,101,0,98,0,98,0,99,0,96,0,99,0,94,0,98,0,94,0,95,0,95,0,91,0,95,0,89,0,93,0,88,0,89,0,89,0,85,0,88,0,81,0,87,0,79,0,84,0,77,0,80,0,76,0,77,0,74,0,72,0,71,0,71,0,68,0,67,0,65,0,62,0,65,0,57,0,62,0,53,0,59,0,51,0,53,0,50,0,47,0,48,0,43,0,43,0,41,0,37,0,39,0,32,0,36,0,28,0,30,0,27,0,23,0,25,0,18,0,22,0,13,0,17,0,12,0,8,0,12,0,3,0,5,0,4,0,-3,-1,1,0,-6,-1,-5,-1,-7,-1,-11,-1,-12,-1,-14,-1,-17,-1,-16,-1,-22,-1,-21,-1,-25,-1,-25,-1,-29,-1,-30,-1,-32,-1,-33,-1,-37,-1,-36,-1,-42,-1,-38,-1,-47,-1,-41,-1,-51,-1,-44,-1,-54,-1,-48,-1,-58,-1,-51,-1,-60,-1,-55,-1,-62,-1,-60,-1,-63,-1,-65,-1,-64,-1,-69,-1,-66,-1,-73,-1,-68,-1,-74,-1,-73,-1,-75,-1,-77,-1,-76,-1,-79,-1,-78,-1,-83,-1,-78,-1,-86,-1,-81,-1,-84,-1,-86,-1,-85,-1,-87,-1,-88,-1,-86,-1,-90,-1,-88,-1,-91,-1,-88,-1,-93,-1,-88,-1,-95,-1,-88,-1,-94,-1,-92,-1,-92,-1,-93,-1,-93,-1,-91,-1,-97,-1,-88,-1,-97,-1,-89,-1,-96,-1,-91,-1,-93,-1,-91,-1,-92,-1,-92,-1,-91,-1,-90,-1,-90,-1,-90,-1,-89,-1,-88,-1,-88,-1,-87,-1,-87,-1,-85,-1,-86,-1,-83,-1,-84,-1,-82,-1,-81,-1}; }
	private static byte[] data20(){ return new byte[] {-82,-1,-78,-1,-79,-1,-77,-1,-77,-1,-74,-1,-76,-1,-70,-1,-74,-1,-68,-1,-71,-1,-66,-1,-68,-1,-63,-1,-65,-1,-61,-1,-61,-1,-59,-1,-57,-1,-57,-1,-53,-1,-54,-1,-50,-1,-51,-1,-48,-1,-45,-1,-46,-1,-41,-1,-44,-1,-37,-1,-40,-1,-33,-1,-37,-1,-30,-1,-32,-1,-27,-1,-29,-1,-22,-1,-26,-1,-18,-1,-22,-1,-14,-1,-19,-1,-11,-1,-13,-1,-8,-1,-9,-1,-4,-1,-8,-1,3,0,-3,-1,2,0,4,0,4,0,9,0,8,0,12,0,13,0,15,0,17,0,17,0,23,0,21,0,25,0,26,0,27,0,31,0,31,0,32,0,37,0,34,0,41,0,39,0,41,0,45,0,43,0,48,0,48,0,49,0,52,0,52,0,54,0,56,0,56,0,59,0,60,0,60,0,63,0,63,0,65,0,67,0,67,0,68,0,69,0,71,0,72,0,73,0,74,0,73,0,77,0,76,0,77,0,79,0,78,0,80,0,80,0,81,0,82,0,82,0,84,0,80,0,87,0,81,0,87,0,83,0,88,0,82,0,88,0,84,0,87,0,87,0,86,0,84,0,90,0,82,0,90,0,85,0,85,0,87,0,83,0,87,0,84,0,86,0,82,0,86,0,79,0,87,0,80,0,81,0,84,0,76,0,83,0,78,0,77,0,80,0,74,0,77,0,74,0,75,0,71,0,74,0,70,0,69,0,71,0,64,0,70,0,63,0,65,0,63,0,61,0,60,0,60,0,56,0,58,0,54,0,53,0,52,0,51,0,48,0,50,0,43,0,47,0,43,0,40,0,42,0,35,0,39,0,35,0,33,0,31,0,31,0,26,0,30,0,21,0,27,0,17,0,23,0,16,0,17,0,14,0,12,0,10,0,12,0,3,0,9,0,1,0,2,0,2,0,-3,-1,-3,-1,-5,-1,-8,-1,-7,-1,-12,-1,-10,-1,-16,-1,-15,-1,-17,-1,-20,-1,-19,-1,-25,-1,-22,-1,-28,-1,-25,-1,-31,-1,-31,-1,-31,-1,-36,-1,-33,-1,-40,-1,-37,-1,-41,-1,-41,-1,-43,-1,-47,-1,-43,-1,-51,-1,-45,-1,-53,-1,-51,-1,-51,-1,-57,-1,-52,-1,-60,-1,-56,-1,-59,-1,-60,-1,-62,-1,-61,-1,-66,-1,-62,-1,-67,-1,-66,-1,-68,-1,-68,-1,-69,-1,-72,-1,-68,-1,-75,-1,-70,-1,-75,-1,-73,-1,-75,-1,-74,-1,-78,-1,-75,-1,-77,-1,-77,-1,-78,-1,-78,-1,-78,-1,-80,-1,-78,-1,-80,-1,-79,-1,-80,-1,-80,-1,-80,-1,-79,-1,-82,-1,-78,-1,-83,-1,-76,-1,-83,-1,-78,-1,-81,-1,-78,-1,-80,-1,-78,-1,-80,-1,-77,-1,-78,-1,-77,-1,-77,-1,-76,-1,-77,-1,-74,-1,-75,-1,-73,-1,-75,-1,-72,-1,-72,-1,-70,-1,-71,-1,-70,-1,-68,-1,-68,-1,-66,-1,-67,-1,-64,-1,-65,-1,-60,-1,-65,-1,-58,-1,-61,-1,-58,-1,-57,-1,-56,-1,-54,-1,-55,-1,-50,-1,-53,-1,-49,-1,-47,-1,-49,-1,-43,-1,-46,-1,-43,-1,-40,-1,-42,-1,-36,-1,-39,-1,-34,-1,-36,-1,-31,-1,-31,-1,-30,-1,-26,-1,-30,-1,-20,-1,-27,-1,-19,-1,-20,-1,-20,-1,-13,-1,-19,-1,-9,-1,-16,-1,-6,-1,-11,-1,-5,-1,-7,-1,0,0,-6,-1,4,0,-2,-1,5,0,4,0,7,0,7,0,11,0,10,0,14,0,14,0,16,0,18,0,18,0,23,0,21,0,25,0,24,0,29,0,26,0,34,0,27,0,37,0,33,0,36,0,37,0,40,0,38,0,45,0,40,0,45,0,46,0,45,0,50,0,47,0,51,0,52,0,51,0,56,0,52,0,59,0,54,0,61,0,56,0,62,0,61,0,60,0,65,0,62,0,65,0,65,0,66,0,66,0,68,0,68,0,68,0,70,0,69,0,71,0,70,0,72,0,71,0,74,0,70,0,75,0,72,0,73,0,76,0,71,0,76,0,74,0,73,0,76,0,73,0,75,0,75,0,73,0,75,0,75,0,72,0,75,0,73,0,73,0,74,0,71,0,73,0,71,0,72,0,71,0,69,0,71,0,69,0,69,0,68,0,67,0,67,0,66,0,66,0,64,0,63,0,64,0,61,0,62,0,60,0,58,0,60,0,56,0,57,0,56,0,52,0,55,0,50,0,53,0,48,0,50,0,46,0,46,0,45,0,44,0,42,0,42,0,38,0,40,0,37,0,35,0,36,0,30,0,35,0,28,0,29,0,29,0,23,0,27,0,21,0,23,0,19,0,19,0,17,0,14,0,16,0,10,0,13,0,7,0,11,0,2,0,8,0,1,0,2,0,1,0,-2,-1,-3,-1,-4,-1,-7,-1,-6,-1,-10,-1,-10,-1,-12,-1,-14,-1,-14,-1,-18,-1,-17,-1,-19,-1,-22,-1,-21,-1,-25,-1,-25,-1,-26,-1,-28,-1,-30,-1}; }
	private static byte[] data21(){ return new byte[] {-30,-1,-33,-1,-33,-1,-35,-1,-35,-1,-39,-1,-36,-1,-43,-1,-38,-1,-45,-1,-41,-1,-45,-1,-46,-1,-46,-1,-48,-1,-50,-1,-48,-1,-53,-1,-50,-1,-54,-1,-54,-1,-54,-1,-57,-1,-54,-1,-61,-1,-55,-1,-62,-1,-57,-1,-62,-1,-60,-1,-63,-1,-63,-1,-62,-1,-65,-1,-62,-1,-68,-1,-62,-1,-69,-1,-64,-1,-68,-1,-66,-1,-68,-1,-67,-1,-69,-1,-67,-1,-69,-1,-68,-1,-70,-1,-68,-1,-70,-1,-68,-1,-70,-1,-69,-1,-68,-1,-71,-1,-67,-1,-71,-1,-66,-1,-71,-1,-66,-1,-69,-1,-68,-1,-66,-1,-69,-1,-64,-1,-69,-1,-62,-1,-70,-1,-60,-1,-68,-1,-61,-1,-66,-1,-60,-1,-64,-1,-59,-1,-63,-1,-59,-1,-60,-1,-56,-1,-60,-1,-55,-1,-58,-1,-54,-1,-54,-1,-53,-1,-53,-1,-50,-1,-52,-1,-47,-1,-52,-1,-43,-1,-50,-1,-41,-1,-47,-1,-41,-1,-44,-1,-37,-1,-43,-1,-35,-1,-40,-1,-33,-1,-37,-1,-31,-1,-34,-1,-30,-1,-29,-1,-29,-1,-26,-1,-25,-1,-26,-1,-20,-1,-24,-1,-17,-1,-21,-1,-15,-1,-17,-1,-13,-1,-15,-1,-8,-1,-14,-1,-5,-1,-10,-1,-5,-1,-2,-1,-7,-1,3,0,-5,-1,6,0,-1,-1,7,0,3,0,8,0,8,0,10,0,11,0,13,0,13,0,15,0,17,0,18,0,19,0,22,0,20,0,26,0,22,0,28,0,25,0,32,0,26,0,35,0,29,0,35,0,35,0,34,0,39,0,37,0,39,0,40,0,42,0,42,0,43,0,45,0,44,0,48,0,46,0,50,0,47,0,52,0,50,0,51,0,54,0,52,0,55,0,54,0,56,0,56,0,58,0,56,0,59,0,57,0,61,0,60,0,59,0,62,0,60,0,61,0,63,0,61,0,64,0,62,0,64,0,62,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,65,0,63,0,65,0,63,0,63,0,66,0,60,0,67,0,59,0,65,0,61,0,62,0,62,0,60,0,62,0,59,0,61,0,57,0,61,0,56,0,60,0,55,0,58,0,53,0,58,0,51,0,57,0,50,0,53,0,51,0,51,0,48,0,50,0,46,0,48,0,46,0,43,0,46,0,41,0,43,0,41,0,38,0,40,0,37,0,37,0,36,0,33,0,34,0,32,0,29,0,27,0,25,0,20,0,22,0,15,0,16,0,15,0,9,0,13,0,5,0,10,0,3,0,7,0,1,0,4,0,1,0,1,0,0,0}; }
	private static byte[] getData(){
		byte[] data = new byte[22040];
		System.arraycopy(data0(), 0, data, 0, 1024);
		System.arraycopy(data1(), 0, data, 1024, 1024);
		System.arraycopy(data2(), 0, data, 2048, 1024);
		System.arraycopy(data3(), 0, data, 3072, 1024);
		System.arraycopy(data4(), 0, data, 4096, 1024);
		System.arraycopy(data5(), 0, data, 5120, 1024);
		System.arraycopy(data6(), 0, data, 6144, 1024);
		System.arraycopy(data7(), 0, data, 7168, 1024);
		System.arraycopy(data8(), 0, data, 8192, 1024);
		System.arraycopy(data9(), 0, data, 9216, 1024);
		System.arraycopy(data10(), 0, data, 10240, 1024);
		System.arraycopy(data11(), 0, data, 11264, 1024);
		System.arraycopy(data12(), 0, data, 12288, 1024);
		System.arraycopy(data13(), 0, data, 13312, 1024);
		System.arraycopy(data14(), 0, data, 14336, 1024);
		System.arraycopy(data15(), 0, data, 15360, 1024);
		System.arraycopy(data16(), 0, data, 16384, 1024);
		System.arraycopy(data17(), 0, data, 17408, 1024);
		System.arraycopy(data18(), 0, data, 18432, 1024);
		System.arraycopy(data19(), 0, data, 19456, 1024);
		System.arraycopy(data20(), 0, data, 20480, 1024);
		System.arraycopy(data21(), 0, data, 21504, 536);
		return data;
	}
	/** Constructs a new AudioClip with the data from drum-02.wav. */
	public Drum02(){
		data = getData();
		format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float)(44100.0), 16, 1, 2, (float)(44100.0), false);
		lineInfo = new DataLine.Info(SourceDataLine.class, format, AudioSystem.NOT_SPECIFIED);
		try{ AudioSystem.getLine(lineInfo); }
		catch(IllegalArgumentException ex){ lineInfo = null; ex.printStackTrace(); }
		catch(LineUnavailableException e){}
	}
	/** A separate thread for playing drum-02.wav. */
	private class PlayThread extends Thread {
		private byte[] data;
		private AudioFormat format;
		private DataLine.Info lineInfo;
		private SourceDataLine line = null;
		private boolean playing = true;
		private float volume = 1;
		public PlayThread(byte[] d, AudioFormat f, DataLine.Info i, float v){ data = d; format = f; lineInfo = i; volume = v; }
		public void run(){
			try{
				line = (SourceDataLine) AudioSystem.getLine(lineInfo);
				line.open(format, AudioSystem.NOT_SPECIFIED);
				FloatControl vol = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
				vol.setValue(volume);
				line.start();
				int written = 0;
				int available;
				while(written < data.length && playing){
					available = Math.min(line.available(), data.length - written);
					line.write(data, written, available);
					written += available;
				}
				int frames = data.length / format.getFrameSize();
				while(line.getFramePosition() < frames && playing) Thread.sleep(0);
			}
			catch(InterruptedException ex){ playing = false; }
			catch(LineUnavailableException ex){}
			if(line != null){ line.stop(); line.flush(); line.close(); }
			playing = false;
		}
		public void interrupt(){ playing = false; }
		public boolean isPlaying(){ return playing; }
	}
	/** A separate thread for looping play of drum-02.wav. */
	private class LoopThread extends Thread {
		private Drum02 clip;
		private boolean looping = true;
		public LoopThread(Drum02 c){ clip = c; }
		public void run(){
			while(looping){
				clip.play();
				while(clip.isPlaying() && looping){
					try{ Thread.sleep(0); }
					catch(InterruptedException ex){ looping = false; break; }
				}
			}
			if(!clip.isLooping()) clip.stop();
		}
		public void interrupt(){ looping = false; }
		public boolean isLooping(){ return looping; }
	}
	/** Plays drum-02.wav from the beginning, even if it is already playing or looping. */
	public void play() { play(0); }
	public void play(float balance){ if(lineInfo == null) return; doPlay(balance); }
	private synchronized void doPlay(float balance){
		doStopPlay();
		playThread = new PlayThread(data, format, lineInfo, balance);
		playThread.start();
	}
	/** Plays drum-02.wav continuously until stopped. */
	public void loop(){ if(lineInfo == null) return; doLoop(); }
	private synchronized void doLoop(){
		doStopLoop();
		loopThread = new LoopThread(this);
		loopThread.start();
	}
	/** Stops play and looping of drum-02.wav. */
	public void stop(){ if(lineInfo == null) return; doStop(); }
	private synchronized void doStop(){
		doStopPlay();
		doStopLoop();
	}
	private void doStopPlay(){
		if(playThread == null) return;
		if(playThread.isPlaying()) playThread.interrupt();
		playThread = null;
	}
	private void doStopLoop(){
		if(loopThread == null) return;
		if(loopThread.isLooping()) loopThread.interrupt();
		loopThread = null;
	}
	/** Tests if drum-02.wav is currently playing or looping.
	 * @return <tt>true</tt> if playing or looping, <tt>false</tt> otherwise */
	public boolean isPlaying(){ if(lineInfo == null) return false; return doIsPlaying(); }
	private synchronized boolean doIsPlaying(){
		if(loopThread == null && playThread == null) return false;
		else if(loopThread == null) return playThread.isPlaying();
		else if(playThread == null) return loopThread.isLooping();
		else return loopThread.isLooping() && playThread.isPlaying();
	}
	/** Tests if drum-02.wav is currently looping.
	 * @return <tt>true</tt> if looping, <tt>false</tt> otherwise */
	public boolean isLooping(){ if(lineInfo == null) return false; return doIsLooping(); }
	private synchronized boolean doIsLooping(){
		if(loopThread == null) return false;
		else return loopThread.isLooping();
	}
}